输入字符串与输出字符串中dx寄存器的问题
程序代码:
;MASMPlus 代码模板 - 纯 DOS 程序 .model small .stack 200h .data szMsg db 'Hello World!',13,10,'$' string db 25 result dw 4 dup(?) LastLine db 0dh,0ah,'$' .CODE START: mov ax,@data mov ds,ax ;第一部分 ;输入字符串 lea dx, string mov ah,0ah int 21h ;换行 mov dl,0ah mov ah,02h int 21h mov si,offset string inc si ;取string的第二个字符 mov cl,[si] ;cx放string字符个数 and cx,0ffh;取低八位 ;输出字符串 jumpout: inc si mov dl,[si] mov ah,02h int 21h loop jumpout ;回车换行 lea dx,LastLine mov ah,09h int 21h ;call display xor dx,dx xor ax,ax ;第二部分 mov ax,100 mov dx,result call display ;暂停,任意键关闭 mov ah,1 int 21h mov ah,4ch ;结束,可以修改al设置返回码 int 21h display proc near xor cx,cx mov bx,10 jump: div bx push dx xor dx,dx;记得要清零 inc cx cmp ax,0 jnz jump myLoop: pop dx add dl,30h mov ah,02h int 21h loop myLoop ret display endp END START以上是我写的汇编代码,出现的问题是,
如果单独运行第一部分与第二部分程序都没有问题。
但是把这两部分放在一起的时候程序就是一闪而过。
用mov ah,01h输入来暂停也没有用。有人可以帮我找出问题吗?谢谢!