码迷,mamicode.com
首页 > 编程语言 > 详细

王爽《汇编语言第三版》实验10-1代码实现

时间:2016-05-10 16:42:37      阅读:564      评论:0      收藏:0      [点我收藏+]

标签:

;编写一个通用的子程序实现这个显示字符串的功能,提供灵活的调用接口,使调用者
;可以决定显示的位置,内容,颜色
assume cs:code,ss:stack,ds:data

data segment
        db ‘welcome to masm!‘,0 ;要显示的字符串
data ends

stack segment
        db 128 dup (0)
stack ends

code segment

 start: mov dh,23    ;行数
        mov dl,10    ;列数
        mov cl,4     ;颜色

        mov ax,data
        mov ds,ax

        mov ax,stack
        mov ss,ax
        mov sp,128

        mov si,0
        call show_str


        mov ax,4c00h
        int 21h
;------------------------------
 show_str:
        push cx
        push dx

        mov bx,0b800h    ;显示地址
        mov es,bx
;---------------------------------
        sub dh,1         
        mov al,160
        mul dh
        mov di,ax         ;行偏移

        sub dl,1
        mov al,2
        mul dl             ;列偏移
        add di,ax         ;行偏移+列偏移
;-------------------------------------
        mov dh,cl        ;将颜色cl赋予dh   

 
 s:     mov cl,ds:[si]     ;将字符传给cl
        mov ch,0         ;在cx为0时跳出循环

        mov dl,cl        ;字符
        mov es:[di],dx     ;字符+颜色传递到显示位置

        inc si             ;调用下一个字符
        add di,2         ;显示下一个字符
 

        jcxz ok             ;当cx为0时结束循环,字符最后一个为0
        loop s

  ok:   pop dx
        pop cx
        ret                 ;返回到主函数

code ends

end start

王爽《汇编语言第三版》实验10-1代码实现

标签:

原文地址:http://www.cnblogs.com/xautxuqiang/p/5478282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!