我有一个程序,应该清除屏幕并打印我的名字,然后换行并再次打印我的名字。但是当我运行它时什么都没有显示出来。只是程序正常运行。我在使用调试的Windows命令提示符下执行此操作。装配程序帮助
call 010E
call 0125
call 012D
call 0125
int 20
push ax #clearscreen(010E)
push bx
push cx
push dx
xor al, al
xor cx, cx
mov dh, 18
mov dl, 4f
mov bh, 07
mov ah, 06
int 20
pop dx
pop cx
pop bx
pop ax
ret
mov dx, 0200 #printline(0125)
mov ah, 09
int 21
ret
push ax #new line(012D)
push dx
mov ah, 02
mov dl, 0d
int 21
mov dl, 0a
int 21,
pop dx
pop ax
ret
DB' Antarr$ #(0200)
1)为什么要调试? 2)你为什么确定例程的确切长度? 3)是什么让你认为你的名字将在偏移量0x200? 4)在`clearscreen`中,是int 20还是21? 5)你确定CS和DS是平等的吗? – ruslik 2010-12-01 16:43:18
我确切的长度,因为我手工输入它,然后回去修改调用 – 2010-12-01 16:55:30
我在清除屏幕中将int 20更改为21。这有助于用换行符打印我的名字,但没有清晰的屏幕 – 2010-12-01 17:00:18