0DH:回车控制符CR
0DH对应的十进制数值为13,在ASCII码表中代表回车Carriage Return,简称CR。其核心功能是将光标移动到当前行的起始位置即行首,但不会改变光标的行位置。例如,若光标当前位于屏幕第3行第10列,执行0DH控制后,光标会移动到第3行第1列,而行数保持不变。0AH:换行控制符LF
0AH对应的十进制数值为10,在ASCII码表中代表换行Line Feed,简称LF。其核心功能是将光标移动到下一行的同一列位置,但不会改变光标的列位置。例如,若光标当前位于第3行第10列,执行0AH控制后,光标会移动到第4行第10列,而列数保持不变。0DH与0AH的配合使用
在早期DOS系统及汇编程序中,单独的回车或换行法成“文本输出后另起一行”的效果。只有将0DH回车和0AH换行组合使用,才能实现标准的“换行”功能——先通过回车将光标移到行首,再通过换行将光标移到下一行,最终使后续输出从新行的行首开始。这种组合在汇编程序的字符串定义中极为常见。例如,通过DOS中断`INT 21H`的09H功能显示字符串输出文本时,需在字符串末尾添加`0DH`和`0AH`来控制输出格式。典型代码示例如下:
```assembly data segment str db 'Hello, Assembly!', 0DH, 0AH, '$' ; 字符串后添加回车+换行 data ends
code segment assume cs:code, ds:data start: mov ax, data mov ds, ax mov dx, offset str ; DX指向字符串首地址 mov ah, 09H ; 09H功能:显示字符串 int 21H ; 调用DOS中断 mov ah, 4CH ; 程序 int 21H code ends end start ```
上述代码中,`str`字符串的内容为`'Hello, Assembly!'`,其后紧跟`0DH`和`0AH`,最后以`'$'`字符串标志收尾。执行后,屏幕会先显示“Hello, Assembly!”,然后光标移至新行的行首,为后续输出预留空间。
系统差异与汇编中的特殊性
需要意的是,不同操作系统对“换行”的定义存在差异:Unix/Linux系统仅使用0AHLF作为换行符,而Windows系统则延续了DOS的规范,使用0DH+0AHCR+LF组合。但在汇编程序中,尤其是针对DOS环境开发时,`0DH+0AH`的组合是实现文本换行的标准方式,也是最硬件中断如`INT 21H`处理逻辑的选择。综上,0AH和0DH在汇编中是控制文本光标位置的核心字符,二者的组合是实现“换行”功能的关键,直接影响程序的输出格式交互体验。
