asm8086关于打印字符串

时间:2015-03-18 19:36:45

标签: string assembly

你好我的代码我想在屏幕上打印一个具有以下中断的特定字符串

lea dx, pkey
mov ah, 9
int 21h

然后我想打印另一个字符串,但我希望模拟器删除前一个字符串。 例如,如果我想打印:

"Hello and welcome"

然后我要打印:

"Press here to continue"

我希望屏幕在其他字符串中为空。谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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的其他数字。