我有一個程序,應該清除屏幕並打印我的名字,然後換行並再次打印我的名字。但是當我運行它時什麼都沒有顯示出來。只是程序正常運行。我在使用調試的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