0DH:回车符Carriage Return,CR
0DH在ASCII码表中对应十进制13,代表“回车”Carriage Return,缩写CR。这一字符的历史可追溯至机械打字机时代:当打字机成一行输入后,“回车”操作会使打印头回到当前行的起始位置左侧。在汇编语言中,0DH的核心功能延续了这一逻辑——控制光标位置回归行首。例如,在DOS系统中通过中断`int 21h`输出字符时,若仅打印普通字符而未加入0DH,光标会持续右移,最终超出屏幕边界;而加入0DH后,光标会立即回到行首,为后续字符输出腾出空间。
0AH:换行符Line Feed,LF
0AH在ASCII码表中对应十进制10,代表“换行”Line Feed,缩写LF。同样源于机械打字机,“换行”操作会使纸张向上滚动一行,让打印头位于下一行的起始位置。在汇编中,0AH的作用是控制光标下移一行,但不会改变列位置。单独使用0AH时,光标会移至下一行的当前列;若与0DH结合,则能实现“光标回到下一行行首”的整换行效果,这也是现代文本中“换行”概念的底层实现。
0DH与0AH的组合:CRLF换行机制
在汇编实践中,0DH与0AH几乎总是成对出现通常写作`0DH, 0AH`,形成“回车+换行”CRLF的标准换行序列。这一组合是DOS、Windows系统中文本换行的底层约定,直接影响字符串显示与文件存储的正确性。 汇编应用示例: 定义一个带换行的字符串时,需在内容末尾添加`0DH, 0AH`,再以符如`'$'`,供中断调用识别: ```asm msg db 'Hello, Assembly!', 0DH, 0AH, '$' ; 字符串内容 + CRLF + 符 mov dx, offset msg mov ah, 09h ; DOS中断功能号:输出字符串至控制台 int 21h ; 执行中断,屏幕显示"Hello, Assembly!"后自动换行 ``` 上述代码中,`0DH, 0AH`确保输出成后,光标移至下一行行首,避免后续内容与当前行重叠。底层通信与文件操作中的作用
除控制台输出外,0DH和0AH在汇编文件操作中同样关键。当通过`int 21h`功能`40h`写文件向文件写入数据时,若未加入`0DH, 0AH`,所有内容会被连续存储在同一行,导致文件可读性下降;而加入CRLF序列后,文本内容会按行分隔,人类阅读习惯。在串行通信如RS232协议中,0DH和0AH也常作为数据帧的标志,帮助接收方识别一个整数据单元的边界。
