asm8086 关于打印字符串
asm8086 about printing a string
你好,在我的代码中,我想在屏幕上打印带有以下中断的特定字符串
lea dx, pkey
mov ah, 9
int 21h
然后我想打印另一个字符串,但我希望模拟器删除之前的字符串。
例如,如果我想打印:
"Hello and welcome"
然后我想打印:
"Press here to continue"
我希望屏幕从其他字符串中清空。谢谢您的帮助!
Mchlsn,你需要的是清除第一个字符串和第二个字符串之间的屏幕。使用 8086 这将是代码,将其复制并粘贴到您的汇编编译器中,我使用 EMU8086 :
.stack 100h
.data
hello db 'Hello and welcome$'
press db 'Press here to continue$'
.code
;INITIALIZE DATA SEGMENT.
mov ax,@data
mov ds,ax
lea dx, hello ;DISPLAY FIRST STRING.
mov ah, 9
int 21h
call wait_for_key
call clear_screen
lea dx, press ;DISPLAY SECOND STRING.
mov ah, 9
int 21h
call wait_for_key
;FINISH THE PROGRAM PROPERLY.
mov ax,4c00h
int 21h
proc wait_for_key
mov ah,7
int 21h
ret
endp
proc clear_screen
mov ah,0
mov al,7
int 10H
ret
endp
希望对您有所帮助。
顺便说一句,在程序clear_screen中,如果al = 7 的值对您有任何问题,您可以尝试从0 到7 的其他数字。
你好,在我的代码中,我想在屏幕上打印带有以下中断的特定字符串
lea dx, pkey
mov ah, 9
int 21h
然后我想打印另一个字符串,但我希望模拟器删除之前的字符串。 例如,如果我想打印:
"Hello and welcome"
然后我想打印:
"Press here to continue"
我希望屏幕从其他字符串中清空。谢谢您的帮助!
Mchlsn,你需要的是清除第一个字符串和第二个字符串之间的屏幕。使用 8086 这将是代码,将其复制并粘贴到您的汇编编译器中,我使用 EMU8086 :
.stack 100h
.data
hello db 'Hello and welcome$'
press db 'Press here to continue$'
.code
;INITIALIZE DATA SEGMENT.
mov ax,@data
mov ds,ax
lea dx, hello ;DISPLAY FIRST STRING.
mov ah, 9
int 21h
call wait_for_key
call clear_screen
lea dx, press ;DISPLAY SECOND STRING.
mov ah, 9
int 21h
call wait_for_key
;FINISH THE PROGRAM PROPERLY.
mov ax,4c00h
int 21h
proc wait_for_key
mov ah,7
int 21h
ret
endp
proc clear_screen
mov ah,0
mov al,7
int 10H
ret
endp
希望对您有所帮助。
顺便说一句,在程序clear_screen中,如果al = 7 的值对您有任何问题,您可以尝试从0 到7 的其他数字。