下面的代码那里出错了??
本帖最后由 s0512 于 2013-6-13 14:51 编辑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 si,0
call show_str
mov ax,4c00h
int 21h
show_str: mov ax,0b800h
mov es,ax
mov al,0a0h
dec dh
mul dh
mov dh,0
add ax,dx
mov bx,ax
show_obj: push cx
mov ch,0
mov cl,ds:
jcxz ok
10
mov al,
mov es:,al
pop cx
mov al,cl
mov es:,al
add bx,2
inc si
jmp short show_obj
ok: pop cx
ret
code ends
end start
计算行与列那里处理的有点乱,以及CX储存的颜色那。 assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8 ;8行 8*160
mov dl,3 ;3列 3 * 2
mov cl,2 ;颜色
mov ax,data
mov ds,ax
mov si,0
call show_str ;显示字符
mov ax,4c00h
int 21h
show_str: mov ax,0b800h
mov es,ax
mov ah,0 ;先清0试下
mov al,0a0h ;B800H+160 也就是一行
dec dh ;前面加了一行,这里-1,对的~嘿嘿
mul dh ;在这之前,要保存一下AX才行
mov bx,ax
mov dh,0
add dl,dl
add bx,dx
;mov bx,ax
show_obj: push cx ;保存CX
mov ch,0
mov cl,ds:
jcxz ok
mov al,
mov es:,al
pop cx
mov al,cl
mov es:,al
add bx,2
inc si
jmp short show_obj
ok: pop cx
ret
code ends
end start希望你满意哈 s0512 发表于 2013-5-28 13:01 static/image/common/back.gif
计算行与列那里处理的有点乱,以及CX储存的颜色那。
还是不懂... 详细点被 asyz8573 发表于 2013-5-28 14:17 static/image/common/back.gif
还是不懂... 详细点被
两段代码比较一下就好,就是行数和列数那没处理好而已 s0512 发表于 2013-5-28 14:32 static/image/common/back.gif
两段代码比较一下就好,就是行数和列数那没处理好而已
add dl,dl 这里没看懂 s0512 发表于 2013-5-28 14:32 static/image/common/back.gif
两段代码比较一下就好,就是行数和列数那没处理好而已
我原来的代码加进 add dl,dl 就可以了 虽然不懂 但还是谢谢你了 asyz8573 发表于 2013-5-28 14:52 static/image/common/back.gif
add dl,dl 这里没看懂
dl上面有注释,是存放的列数,
字符颜色
dl CL
加上颜色的一个字节,相当于DL乘2,才是真正的位置。 asyz8573 发表于 2013-5-28 15:01 static/image/common/back.gif
我原来的代码加进 add dl,dl 就可以了 虽然不懂 但还是谢谢你了
不用客气的同学!!{:5_109:} 楼主加油,鱼C加油!我们都看好你哦! 楼主加油,鱼C加油!我们都看好你哦! s0512 发表于 2013-5-28 15:05 static/image/common/back.gif
不用客气的同学!!
版主真是给力啊! 激动人心,无法言表! 楼主加油~~帮顶
页:
[1]