汇编网首页登录博客注册
lcf20092009的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2010-01-12 10:34] 实验10-1     显示字符串

实验10-1  显示字符串
  
显示字符串
描述:
名称:show_str
功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
参数:(dh)=行号(取值范围0~24)
(dl)=列号(取值范围0~79)
(cl)=颜色
Ds:si指向字符串的首地址
返回:无


编写程序如下:
data segment
db 'welcome to masm!',0
data ends

code segment
assume cs:code
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:
push ax
push bx
push cx
push dx

mov ax,0b800h
;显存入口地址
mov es,ax
mov al,160
mul dh
;行数*160
mov bl,dl
mov bh,0
add bx,ax
;列与行相加得出地址值

s:
push cx
mov al,[si]
mov cl,al
mov ch,0
jcxz ok
;判断取得的是不是0

pop cx

mov es:[bx+1],al
mov es:[bx+2],cl
inc si
inc bx
inc bx
jmp s

ok: pop cx
pop dx
pop cx
pop bx
pop ax
ret

code ends
end start
评论次数(1)  |  浏览次数(791)  |  类型(汇编作业) |  收藏此文  | 

[  suixin   发表于  2010-01-12 13:40  ]

得出行和列的物理地址这段代码,在思路上比我写的简洁的多,很不错。踩踩 ^_^

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码