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

我的博客

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

[2010-09-04 12:16] 实验10  显示字符串

assume cs:code
data segment
  db 'welcome to masm!',0
data ends
stack segment
  dw 8 dup(0)
stack ends
code segment
start: mov dh,8
       mov dl,3
       mov cl,2
       mov ax,data
       mov ds,ax
       mov si,0
       mov ax,stack
       mov ss,ax
       mov sp,16               ;寄存器初始化
       call show_str           ;转移指令到show_str

       mov ax,4c00h
       int 21h
show_str:push dx
         push si
         push bp
         push ax
         push cx               ;保存寄存器中的数据
         mov al,160
         mul dh
         mov bp,ax
         mov al,2
         mul dl
         
         add bp,ax              ;计算显存初地址
         mov ax,0b800h
         mov es,ax              ;将段地址放入寄存器es中
         
         
zhuanyi:mov cl,ds:[si]
        mov ch,0
        jcxz ok                ;判断字符是否为0
        mov es:[bp],cl         ;将字符串转移到显存中
        pop cx 
        mov es:[bp+1],cl       ;定义颜色
        push cx
        add bp,2
        inc si
       jmp short zhuanyi 

     ok:pop cx
        pop ax
        pop bp
        pop si
        pop dx                 ;恢复寄存器中数据
        ret
code ends
end start
评论次数(0)  |  浏览次数(459)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码