过默 发表于 2012-11-12 12:04:29

显示不出来

assume cs:code
data segment
dw 123,12666,1,8,3,38
db 100 dup (0)

data ends
code segment
start:
            mov ax,data
   mov ds,ax
   mov si,0
   
   call dtoc
   
      mov dh,8
   mov dl,3
   
   mov cl,02
   mov bp,0
   mov si,0
            mov bx,0
            mov ax,0   
   call show_str
   
   mov ax,4c00h
   int 21h
   
   dtoc:mov cx,6         ;cx=6,数据除以十得到余数
s:push cx               ;cx将保存栈段
s2: mov ax,         ;取得data段的被除数
      push si
s3: mov cx,ax             ;判断商为零
   jcxz okye
   mov bx,10             ;bx=10
   mov dx,0            ;dx清零,继续一个数的下一
      div bx
   add dx,30h            ;余数加上30h,改变为ASCII码
   push dx               ;得到的ASCII码放入栈中
   inc di
   jmp short s3          ;商不为零,继续转移到s2
   
      okye: mov cx,di
         
         
   s4: pop dx                ;得到的ASCII码值放入ds:si
            mov ,dx       ;=dx
   inc bp
   loop s4
               
   mov di,0
   mov dx,0
   pop si
   add si,2
   pop cx
   loop s
   
   ret
   
show_str:mov ax,0A0h
          dec dh
          mul dh
   
    mov bx,ax
    mov ax,2
    mul dl
    sub ax,2
   
    add bx,ax
   
    mov ax,0B800h
    mov es,ax
   
    mov si,12
   
    mov al,cl
    mov ah,0
   
t:   mov cl,ds:   
    mov ch,0
    jcxz ok
    mov es:,cl
    mov es:,al
    add di,2
    add si,1
    jmp short t
   
ok:   ret   
   
   
code ends
end start

pediyzhi 发表于 2012-11-12 12:34:00

debug 中输入 G 20

补充内容 (2012-11-12 12:40):
不过你的程序有点小问题,更多的可以看我那个操作显存不显示的BUG解决
http://bbs.fishc.com/thread-24222-1-1.html

s0512 发表于 2012-11-12 14:41:39

看似没什么问题哦!!
页: [1]
查看完整版本: 显示不出来