assembly 为什么我们在消息DB 10,13,'foo $'中使用10,13?

noj0wjuj  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(141)

这是用汇编语言为8086微处理器编写的代码。这段代码查找数字是正数还是负数。我理解代码,但不能理解该代码的第4和第5行。

;FIND A NUMBER THAT WAS POSITIVE OR NEGETIVE 
       DATA SEGMENT 
       X DW 28H
       MSG1 DB 10,13, 'NUMBER IS POSITIVE $'
       MSG2 DB 10,13, 'NUMBER IS NEGETIVE $' 
       DATA ENDS 

       CODE SEGMENT
       ASSUME CS:CODE, DS:DATA
       START: 
       MOV AX, DATA
       MOV DS, AX
       MOV AX, X 
       ROL AL, 01H
       JC NEGA
       LEA DX, MSG1
       JMP LAST

       NEGA:
        LEA DX, MSG2

        LAST:
            MOV AH, 09H
            INT 21H
            MOV AH,4CH
            INT 21H 

       CODE ENDS
   END START

为什么他们在第4和第5行的MSG1 DB后面使用10,13?

goucqfw6

goucqfw61#

由于内部服务器错误的注解表明10是换行符的ASCII控制代码,而13是回车符的代码。换行控制代码将光标移动到下一行,而回车代码将光标移动到行首。这两个控制代码一起将光标移动到下一行的开头。
这两个控制代码一起也形成了标准的MS-DOS行结束序列,除了在其他顺序。换句话说,序列13, 10是标准的MS-DOS行结束。虽然在示例程序中使用不正确的顺序可能不会产生任何实际差异,但您应该在自己的程序中使用正确的顺序。这将确保其他可能读取您的程序输出的程序不会感到困惑。

相关问题