王爽汇编语言实验10的算法

[复制链接]
查看11 | 回复0 | 2010-4-7 09:46:14 | 显示全部楼层 |阅读模式
.modelsmall
.datamsg
db
'welcome to masm!',0
.stack
.code
assumecs:@code,ds:@data,ss:@stackstart:cld
mov
ax,@data
mov
ds,ax
mov
si,offset msg
mov
dh,8
mov
dl,3
mov
cl,2
mov
ch,0
push
ds
push
si
push
dx
push
cx
call
show_str
add
sp,8
mov
ax,4c00h
int
21hshow_str:
mov
bp,sp
push
ds
push
es
mov
dx,[bp+4] ;取屏幕目标位置
lds
si,[bp+6] ;取字符串地址
mov
ax,0b800h ;屏幕缓冲区段值
mov
es,ax
mov
al,160
;每行占160字节
mul
dh
xor
dh,dh
shl
dx,1
add
ax,dx
;得到屏幕上字符位置的起始地址
mov
di,ax
;放到DI中
cld
mov
ah,[bp+2] ;取颜色参数@@:
lodsb
or
al,al
;字串末尾?
jz
@f
stosw
jmp
@b@@:
pop
es
pop
ds
ret
end
start 注意:因为字符是通过直接访问VIDEO RAM来显示的,所以须在MSDOS下执行才看到。windows中可能无法正确显示。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行