注册 登录
编程论坛 汇编论坛

(王爽) 实验10 (1) 代码 求改错

e0a 发布于 2014-03-08 15:44, 784 次点击
程序代码:
把 data段 字符  显示到 屏幕 第8行 第 3列   白底绿色



assume cs:code
data segment
  db 'Welcome to masm!',0
data ends
code segment
start:        mov dh,8
              mov dl,3
              mov cl,2
              mov ax,data
              mov ds,ax         ;参数


              mov di,0          ;显存偏移
              mov si,0          ;字符串偏移


              call show

              mov ax,4c00h
              int 21h

show:         mov ax,0b800h       ;显存子程序
              mov es,ax
              mov al,160
              mul dh
              mov bx,ax
              mov al,2
              mul dl
              add ax,bx
              mov di,ax

              mov bx,0
              mov cx,0



show1:        mov ch,0
              mov cl,[si]     
              jcxz ok           
              mov al,ds:[si]
              mov ah,02h          ;放到ax  高位 属性, 低位 字符
              mov es:[di],ax      ;放到显存地址
              add di,2
              inc si
              jmp short show1

ok:           ret

code ends
end start


[ 本帖最后由 e0a 于 2014-3-8 15:48 编辑 ]
4 回复
#2
e0a2014-03-08 15:46
编译没结果  一直卡在光标

帮我看看哪里有错  注意下 show1
#3
hu9jj2014-03-09 09:07
程序若有语法错误,编译时会报错啊,不会卡的。程序若有逻辑错误,运行时才可能会卡。
#4
e0a2014-03-10 08:32
什么逻辑错误
#5
hu9jj2014-03-10 16:52
我的意思是程序在编译过程中通常不会出现卡死的,程序有语法错误,编译器会报错的。只有编译通过的程序在运行过程中,如果程序有逻辑错误(例如有死循环),才有可能出现类似卡死的现象。
1