汇编语言学习(五)

本部分为王爽《汇编语言》第10章的三个实验。

主要内容为:

1.实现对存储的字符串或二进制数据的屏幕显示
2.理解并改进div存在的溢出问题
1.实验一 显示字符串

子程序描述:

名称:show_str

功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。

参数:dh行号,取值0~24,dl列号,取值0~79,cl颜色

重要思路:

子程序可以分为定位坐标复制粘贴数据两部分。

1.根据第9章的实验可知,如果要显示字符串,需要从B8000开始。所以首先计算dh、dl对应行、列的实际坐标。尤其注意列是从0开始的

2.用jcxz 标号实现读到data段为0,即跳转。​

3.为简化程序,多用其它寄存器。比如用al存储颜色,所以cx就可以用来从data段中取数了。

assume cs:code
data segment
    db 'Welcome to masm',0
data ends

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

            mov ax,4C00h
            int 21h

show_str:   mov ax,0
            mov al,dh
            mov bl,0Ah
            mul bl
            add ax,0B800h
            mov bx,0
            mov bl,dl
            sub bl,1
            add bl,bl       ;列从0开始
            mov es,ax
            mov al,cl
            mov ch,0
s:          mov cl,[si]
            jcxz ok         ;实现读到0跳转
            mov es:[bx],cl
            mov es:[bx+1],al
            add bx,2
            add si
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值