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

我的博客

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

[2010-10-22 22:43] 检测点10.1

图片载入中
assume cs:code
data segment
        db 'welcome to masm!',0
data ends

code segment
 start:mov dh,13   行号
       mov dl,10   列号
       mov cl,1    颜色
       mov ax,data
       mov ds,ax
       mov si,0   data数据设置
       call k        push (mov ax,4c00)
       mov ax,4c00h
       int 21h
     k:mov ax,0b800h  
       mov es,ax
       mov di,0a0h  屏幕显示的 地址
       mov ax,di
       mul dh  
       mov di,ax    这是用乘法算出要显示的行数
       mov ax,0
       mov al,2
       mul dl
       sub ax,2    用乘法减法算出显示的列数
       add di,ax    相加得出要屏幕显示行列的偏移地址
       mov ah,cl    把颜色送入寄存器高位
       push cx     保存cx
     s:mov cl,[si]
       mov ch,0
       jcxz ok          利用jcxz来得出显示多少字
       mov al,[si]     把要显示的字送入寄存器低位
       mov es:[di],ax   把字和属性送入要显示的屏幕
       inc si           data数据地址加一
       add di,2          显示偏移地址加2
       jmp near ptr s
    ok:pop cx          还原cx
       ret             pop (mov ax,4c00h)
code ends
end start
评论次数(0)  |  浏览次数(470)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码