|  | 
 
| 
本帖最后由 skylove1233 于 2017-9-24 19:12 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 书上的15.4部分,要求依次显示A-Z,这需要用到延时函数
 assume cs:code
 stack segment
 db 128 dup (0);定义堆栈区为128字节
 stack ends
 code segment
 start:         mov ax,stack
 mov ss,ax
 mov sp,128
 mov ax,0b800h
 mov es,ax
 mov ah,'a'
 s:   mov es:[160*12+40*2],ah
 call delay
 inc ah
 cmp ah,'z'
 jna s
 
 mov ax,4c00h
 int 21h
 delay:
 push ax
 push dx
 mov dx,1000h
 mov ax,0
 s1:
 sub ax,1
 sbb dx,0
 cmp ax,0
 jne s1
 cmp dx,0
 jne s1
 
 pop dx
 pop ax
 ret
 
 code ends
 end start
 以上代码就是书上的延时函数,我看小甲鱼老师按照这个代码就可以正常地以此显示A-Z,但是我的结果却是下图这样
  不仅不能依次显示A-Z,而且还不能正常返回,我想问下这是什么原因? 补充:程序运行到jne s1,就运行不下去了,不知道这是什么原因
 
delay段里把bx 赋值为2h,不要赋值1000h,太慢了。你的是dosbox,计算速度不太一样。 
解决了别忘记点“最佳答案”  | 
 |