使用MS-DOS int 21h系统调用以汇编语言打印新行

use*_*734 1 x86 assembly dos

我一直在尝试打印新的生产线,同时还采用汇编语言在nasmide过去几天印刷字母和不能得到它,我已经试过至今任印什么,印只是一个或一个印众多符号,Google对我没有帮助,所以我决定在这里发帖.

到目前为止我的代码是

CR equ 0DH
LF equ 0AH

main:
mov AH,02H
mov CX,26
mov DL, 'A'

while1:
cmp DL, 'A'
add DL, 01H
int 21H
mov DL, 0DH
mov DL, 0AH
int 21H
cmp DL, 'Z'
je Next
jmp while1

Next:
mov AH,4CH
int 21h
Run Code Online (Sandbox Code Playgroud)

小智 7

打印新行代码

MOV dl, 10
MOV ah, 02h
INT 21h
MOV dl, 13
MOV ah, 02h
INT 21h
Run Code Online (Sandbox Code Playgroud)

ascii ---> 10新线ascii ---> 13回车

这是新行的汇编代码,代码是用写机启发的.我们的教授告诉我们这个故事,但我不擅长英语.

干杯:)

  • 是不是先13而不是10?CR-LF? (6认同)

Bri*_*uch 3

嗯,首先:

mov DL, 0DH
mov DL, 0AH
int 21H
Run Code Online (Sandbox Code Playgroud)

对你没有任何好处。您将 0Dh 加载到 DL 中,然后立即用 0Ah 覆盖它,而无需使用第一个值...您需要对两个字符进行调用(int 21h)...

此外,您使用 DL 换行会覆盖该字符之前的使用...您需要根据需要保存和恢复该值。