鱼C论坛

 找回密码
 立即注册
查看: 3074|回复: 1

模拟 sleep 问题

[复制链接]
发表于 2017-5-5 18:48:36 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬帮忙看看,运行的时候老是中途卡死,不知怎么回事!
代码如下:
assume cs:code

stack segment
    db 128 dup(0)
stack ends

code segment
start:    mov ax,stack
          mov ss,ax
                  mov sp,128
                  
                  call show_ch
                  
                  mov ax,4c00H
                  int 21H
;==========================================
show_ch:  push ax
          push es
                  push di
                  
          mov ax,0b800H
                  mov es,ax
                  mov di,160*12+40*2
                  mov al,'a'
print:    mov es:[di],al
          inc al
                  call delay
                  cmp al,'z'
                  jna print
                  
                  pop di
                  pop es
                  pop ax
                  
                  ret
;==========================================
delay:    push ax

          mov al,0
                  out 70H,al
                  in al,71H
                  mov ah,al
                  inc ah
                  mov al,0
                  
delay_s:  push ax
          out 70H,al
                  in al,71H
                  cmp al,ah
                  pop ax
                  jne  delay_s
                  
                  pop ax
                  ret
;==========================================
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-7 14:09:43 | 显示全部楼层
你为什么不调试程序?


延时部分有问题,已经修复
assume cs:code

stack segment
    db 128 dup(0)
stack ends

code segment
start:
        mov ax, stack
        mov ss, ax
        mov sp, 128

        call show_ch

        mov ax, 4c00H
        int 21H
        
;==========================================

show_ch:
        push ax
        push es
        push di

        mov ax, 0b800H
        mov es, ax
        
        mov di, 160*12+40*2
        mov al, 'a'
print:
        mov es:[di],al
        inc al
        
        call delay
        
        cmp al, 'z'
        jna print

        pop di
        pop es
        pop ax
        ret
        
;==========================================

delay:
        push ax

        mov al, 0
        out 70H, al
        
        in al, 71H
        mov ah, al
        
delay_s:
        mov al, 0
        out 70H, al
        
        in al, 71H
        cmp ah, al
        je  delay_s

        pop ax
        ret
        
code ends

end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 02:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表