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

我的博客

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

[2012-07-09 17:23] 实验10:显示字符串

assume cs:code

data segment
        db 'Welcome to masm!',0
data ends

code segment
start:
        mov dh,24
        mov dl,0
        mov cl,2
        mov ax,data
        mov ds,ax
        mov si,0
        call show_str

        mov ax,4c00H
        int 21H

; 名称:show_str
; 功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
; 参数: (DH)=行号(取值范围为0-24);
;                (DL)=列号(取值范围为0-79);
;                (Cl)=颜色;ds:si指向字符串的首地址
show_str:
                ; 保存现场
                push ax
                push es
                push dx
                push cx
                push ds
                push bx ; 偏移量指针
                mov ax,0b800H
                mov es,ax
                
                ; 显示位置的偏移量计算公式为:(行号 - 1) * 160 + 列号
                ;sub dh,1
                mov al,dh
                mov ah,0
                mov dh,0
                mov bl,160
                mul bl
                add dl,dl
                add ax,dx
                
                mov bx,ax  ; 显示字符串的偏移量存放到(bX)中
                
s:                mov dl,[si]
                mov dh,cl
                mov es:[bx],dx
                mov ch,0
                mov cl,dl
                jcxz ok
                inc si
                add bx,2
                jmp short s
                
ok:                pop bx
                pop ds
                pop cx
                pop dx
                pop es
                pop ax
                ret
code ends

end start
评论次数(2)  |  浏览次数(826)  |  类型(汇编作业) |  收藏此文  | 

[  fpamc   发表于  2012-07-09 23:04  ]

对的。

[  assumechen   发表于  2012-07-11 21:16  ]

谢谢!

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