. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
主题 : :  实验10.3  [待解决] 回复[ 6次 ]   点击[ 1449次 ]  
xiaosong
[帖 主] [ 发表时间:2009-03-11 21:39 ] 
荣誉值:5
信誉值:3
注册日期:2009-03-05 20:41
谁能提点意见  帮我看看  运行后结果显示框一闪而过  怎么回事??show_str子程序前面已经用过了 没问题  可能就是dtoc子程序有问题 但自己找了好久 没找出来 自己的错误自己可能难找  但旁观者清。
assume cs:code,ss:satck,ds:data 
data segment 
    db 10 (0) 
data ends 
satck segment 
    dw 16 (0) 
satck ends 

code segment 
start:  mov ax,12666 
        mov bx,data 
        mov ds,bx 
        mov si,0 
        mov bx,satck 
        mov ss,bx 
        mov sp,32 
        call dtoc 
        mov dh,8 
        mov dl,3 
        mov cl,2 
        call show_str 
        mov ax,4c00h 
        int 21h 
        
 dtoc:push dx
      push ax
      push bx
      push cx
      push si
      mov cx,0
   s1: mov dx,0
      mov bx,0ah
      div bx
      push dx
      inc cx
      mov bx,cx
      mov cx,ax
      jcxz ok1
      mov cx,bx
      jmp s1
      
      ok1:inc cx
         pop [si]
         inc si
         loop ok1
         pop si
         pop cx
         pop bx
         pop ax
         pop dx
         ret
         
         
show_str:push ax
       push dx 
       push bx 
       push si 
       push cx 
       mov ax,0b800h 
       mov es,ax 
       mov al,160 
       mul dh 
       add dl,dl 
       mov dh,0 
       add ax,dx 
       mov bx,ax 
       mov al,cl 
        
     
     s:mov cl,[si] 
       mov ch,0 
       jcxz ok 
       mov es:[bx],cl 
       mov byte ptr es:[bx+1],al 
       inc si 
       add bx,2 
       jmp short s 
        
     ok:pop cx 
        pop si 
        pop bx 
        pop dx 
        pop ax
        ret 
code ends 
end start
sinawear
[第3楼] [ 回复时间:2009-05-25 08:25 ] 
荣誉值:0
信誉值:5
注册日期:2009-03-25 17:31
这样也精华》》》》》》》》》?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved