您现在所在的是:

单片机论坛

回帖:2个,阅读:1190 [上一页] [1] [下一页]
2950
tjq1976
文章数:426
年度积分:133
历史总积分:2950
注册时间:2003/8/11
发站内信
发表于:2005/1/6 14:24:00
#0楼
assume cs:code
data segment
  db ''Welcome to masm'',0,''AM''
data ends
code segment
  start: mov dh,8         /第8行
         mov dl,3            /第三列
         mov cl,2             /绿色
         mov ax,data
         mov ds,ax
         mov si,0
         call show_str
         mov ax,4c00h
         int 21h
  show_str: push dx
            push cx
            push dx
            mov ax,0B800H
            mov es,ax
            mov cl,ds:[si]
            mov ch,0
            jcxz ok
            mov al,160            
            mul dh                         /计算显示的起始偏移地址
            mov bx,ax
            pop dx
            mov dh,0
            mov di,dx
            add di,di
            mov es:[0+bx+di],cx                    /cl 存放字符代码
            pop cx
            mov byte ptr es:[1+bx+di],cl         /绿色
            pop dx
            inc dl
            inc si                      
            jmp short show_str

        ok: ret
code ends
end start

要求是将字符在显示器的第8行,第三列开始显示,绿色字体,0作为字符结束标志。我遇到的问题是这个程序通过编译,在MASM下执行EXE文件,有时不能执行,提示执行非法操作,有时能够执行,但不能正常结束,死机。
我想请教为什么啊,我看不出有什么问题啊。谢谢!










[此贴子已经被作者于2005-1-6 18:51:04编辑过]
927
88518
文章数:14
年度积分:50
历史总积分:927
注册时间:2005/1/7
发站内信
发表于:2005/1/7 13:27:00
#1楼
附件:
[本地下载]
1036
long1800
文章数:67
年度积分:50
历史总积分:1036
注册时间:2004/11/22
发站内信
发表于:2005/1/7 13:41:00
#2楼
纯汇编的东东,好象你的程序思路和指令有错误。你查一查。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004