ufo9876 发表于 2016-1-30 21:43:33

实验10,第3小题,跟小甲鱼老师抄的

我还是弄不明白,为什么现在用到栈不再去设定sp指针的位置,push和pop的那样随意,会出现覆盖或溢出的问题嘛

assume cs:code , ds:data
   data segment
      dw 16 dup (0)
   data ends
   code segment
      start:mov ax,12666
                mov bx,data
                mov ds,bx
                mov si,0
                call dtoc
                mov dh,8
                mov dl,3
                mov cl,44
                call show
                mov ax,4c00h
                int 21h
      dtoc:push dx
                push cx
                push ax
                push si
                push bx
                mov bx,0
          s1:mov cx,10d
                mov dx,0
                div cx
                mov cx,ax
                jcxz s2
                add dx,30h
                push dx
                inc bx
                jmp short s1
          s2:add dx,30h
                push dx
                inc bx
                mov cx,bx
                mov si,0
           s3:pop ax
             mov ,al
                inc si
                loop s3
                pop bx
                pop si
                pop ax
                pop cx
                pop dx
                ret
        show:push cx
                 push si               
               mov ax,0b800h
               mov es,ax
               mov ax,0
               mov al,0a0h
               mul dh
               mov di,ax
               mov al,2
               mul dl
               sub ax,2
               add di,ax
               mov bx,0
               mov al,cl
               mov ch,0
               
             s:mov cl,ds:
                 jcxz ok
               mov es:,cl
               mov es:,al
               inc si
               add di,2
               jmp short s
               
          ok: pop si
                pop cx
               ret
code ends
end start               
页: [1]
查看完整版本: 实验10,第3小题,跟小甲鱼老师抄的