GriBin 发表于 2012-6-28 22:48:50

关于实验13的一个怪异的问题!

小弟在编写实验13第一小问中遇到一个很奇怪的问题,求助于各位。接下是代码:

assume cs:code

data segment
   db 'welcome to masm!',0
data ends



code segment
start:   mov ax,cs
         mov ds,ax
           mov si,offset do7c
           mov ax,0
           mov es,ax
           mov di,200h
           mov cx,offset do7cend-offset do7c
           cld
           rep movsb
          
           mov ax,0
           mov es,ax
           mov word ptr es:,200h
           mov word ptr es:,0

         mov dh,0ah
         mov dl,0ah
           mov cl,2
           mov ax,data
           mov ds,ax
           mov si,0
           int 7ch
          
           mov ax,4c00h
           int 21h
          
do7c:         push cx
                  push si
                  push bp
                  mov bl,cl
                  mov ax,0b800h
                  mov es,ax
                  mov al,0a0h
                  dec dh
                  dec dl
                  mul dh
                  mov dh,0
                  add ax,dx
                  mov bp,ax
             s: mov cl,
                  mov ch,0
                  jcxz ko
                  mov es:,cl
                  mov es:,bl
                  add si,1
                  add bp,2
                  jmp short s
          ko: pop bp
                pop si
                  pop cx
                   iret
do7cend: nop

code ends
end start
这段代码编译完之后在屏幕上显示的是一串彩色的笑脸符号。经过许久研究之后我把d07c中的两行代码:dec dh和dec dl删除之后则可在屏幕上成功显示welcome to masm!
很奇怪,小弟百思不得其解,希望回娘家得到各位高手的援助,万分感谢

页: [1]
查看完整版本: 关于实验13的一个怪异的问题!