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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2010-01-24 11:55] 作业:实验10.1

==================================================
root@yeah /cygdrive/d/asm
$ cat lab101.asm
assume  cs:code

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

code    segment

;子程序描述
;名称:show
;功能:在指定位置用指定颜色显示一个用0结束的字符串
;参数:dh=行号(0~24),dl=列号(0~79),cl=颜色
;ds:si指向字符串首地址
;返回:无
show:
        mov bx,0b800h                ;指定显示缓存区
        mov es,bx                    ;地址

        mov ax,0a0h                  ;将传入参数dh
        mul dh                       ;计算为目标首
        mov bp,ax                    ;地址,ES:BP

        mov ah,cl                    ;颜色值

;开始循环处理字符串并显示到指定位置
a:      mov bl,dl                    ;将传入参数dl
        mov bh,0                     ;作为目标地址
        mov di,bx                    ;变量

        mov cl,[si]                  ;检查[si]是否为
        mov ch,0                     ;0,如是,则跳出
        jcxz ok                      ;循环

        mov al,[si]                  ;装入字符串
        mov es:1[bp+di],ax           ;传送至目标地址

        inc si                       ;增量操作  
        add dl,2                     ;

        loop a
ok:     ret                          ;ip出栈返回调用

start:  mov ax,data                  ;定义数据段地址
        mov ds,ax                    ;字符串首地址
        mov si,0                     ;ds:si

        mov dh,8                     ;行
        mov dl,3                     ;列
        mov cl,2                     ;颜色
        call show                    ;调用子程序

        mov ah,4ch                   ;程序返回
        int 21h
code    ends
end     start
==================================================
评论次数(1)  |  浏览次数(774)  |  类型(默认类型) |  收藏此文  | 

[  regex   发表于  2010-01-30 15:24  ]

那个loo用的不对!应改为jmp short 比较好

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