登录
首页 单片机论坛
回帖 发帖
正文

主题:请高手看一下我写的这个程序,为什么不能正常执行啊

点击:1223 回复:2

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
05-01-06 14:24
附件:
[本地下载]
05-01-07 13:27
纯汇编的东东,好象你的程序思路和指令有错误。你查一查。
05-01-07 13:41

工控新闻

更多新闻资讯