

- [游客] martian : 谢谢您给我的建议! 08/26 13:14
- [martian] 博主的显示子程序没有问题,建议在子程序上添加相应的注释,比如:参数,返回值。 08/20 16:31
- [martian] 首先实现题目要求,然后再考虑其他的。 博主的程序已经实现题目要求,对程序思路清晰是解决问题的关 08/20 16:27
- [lwbfq] 支持一下。 08/07 15:59
- [游客] 很好啊! 08/05 22:05
- [游客] 俺学到第10章了。现把第九章做的一个题目贴出来,看看哪个高手能给我指点指点。(本人老觉得做得不是很好 08/20 14:34
[ 游客 发表于 2008-08-20 14:34 ]
俺学到第10章了。现把第九章做的一个题目贴出来,看看哪个高手能给我指点指点。(本人老觉得做得不是很好!)
===========================================
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!' ; data
dw 05A0H,0780H,0960H,0FF02h,0FFC2h,0FF17h ; row for each, green, red &gree, blue & white
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16 ; ss->statck
mov ax,data
mov ds,ax ; ds --> data
mov ax,0B800H
mov es,ax ; ss---> memory for screen, + bp
mov di,16
mov cx,3
mov ah,0
mov si,22 ; for each
s:
push cx
mov cx,16
mov bx,0
mov ax,[bx + di ] ; get each line
mov bp,ax
add bp,64
s2:mov al,[bx] ; get each char for data segment --> al, ds:bx
mov es:[ bp ],al ; save into memory buff, si:bp
mov al,ds:[ si ]
inc bp
mov es:[bp],al
inc bx
inc bp
loop s2
add si,2
add di,2
pop cx
loop s ; for 3 rows
mov ax,4c00h
int 21h
code ends
end start