欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

下列程序哪里出错了,如何不能正常运行

更新时间: 2014-01-05 03:16:41 责任编辑: Author_N1

 

下列程序哪里出错了,怎么不能正常运行
assume cs : code , ds : data

data segment

  db 9 , 8 , 7 , 4 ,   2,0
db '///:: '

data ends

stack segment
dw 8 dup(0)
stack ends

code segment
start:
mov ax , data
mov ds , ax

mov ax , stack
mov ss , ax
mov sp , 10F

mov si , 0 
mov di , 6

mov ax , 0B800h
mov es , ax

mov cx , 6

l: mov al , [si]
call trans

mov es:[bx] , ah
mov es:[bx+2] , al
mov al ,ds:[di]
mov es:[bx+4] , al
inc si
inc di
add bx , 6

loop l


;jmp short start //当把注释去掉之后就会出错,怎么回事呢
mov ax , 4c00h
int 21h


trans:
push cx
out 70h , al
in al , 71h

mov ah , al
mov cl , 4
shr ah , cl
and al , 00001111b

add ah , 30h
add al , 30h

pop cx

ret

code ends
end start

--参考方法--
没有给 bx 置初值吧,如给 si 置 0 般地也给 bx 置 0 应该就可以了。
jmp start 其实也没必要,只要 jmp 到给 si 置 0 处就可以了。
一直循环的话,最后有个退出机制,比如检测按个什么键就结束。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:16:41
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20319/
本文WWW.DOC100.NET DOC100.NET版权所有。