王爽 汇编语言 实验10.1

assume cs:code,ds:data

 data segment

   db 'Welcome to masm!',0

 data ends

 code segment

 start:mov dh,8             ;行号

        mov dl,3              ;列号

        mov cl,2              ;颜色

        mov ax,data

        mov ds,ax

        mov si,0              ds:si指向data segment定义的数据

        call show_str         ;调用show_str函数

        mov ax,4c00h

        int 21h

 show_str:push cx           ;由于前面用cl来指颜色

          push si             

          mov al,0a0h          160位一行

          dec dh           ;行数减1

          mul dh           al乘以dh,积为ax

          mov bx,ax           

          mov al,2

          mul dl           ;由于每个字占两位,低位为字,高位为颜色

          sub ax,2             ;减去自己本身占的2

          add bx,ax            ;计算字母显示的位置

          mov ax,0b800h    ;写入内存b8000~bffff中的内容可以显示到屏幕上

          mov es,ax

          mov di,0             es:di指向将被写入的内存空间

          mov al,cl            ;将颜色放到al

          mov ch,0

        s:mov cl,ds:[si]      ;将ds:si中的字母放到cl

          jcxz ok              ;当cx中的值为0时,跳到ok

          mov es:[bx+di],cl   

          mov es:[bx+di+1],al  al中之前存储了颜色

          inc si

          add di,2

          jmp short s

     

        ok:pop si

           pop cx

           ret

    code ends

    end start

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值