|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 skylove1233 于 2017-9-24 19:12 编辑
书上的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,计算速度不太一样。
解决了别忘记点“最佳答案” 
|
|