汇编语言:第七章实验6

第七章:实验六

编程将datasg段中每个单词的前4个字母改为大写字母

寻址方式:

采用基址变址寻址[bx+si]

二重循环问题的处理:

采用栈,外层循环开始时,将cx入栈,内层循环开始时,改变cx的值,内层循环结束时,将栈中的值pop出,传给cx。

采用and和or指令对字母的大小写进行转换

ASCLL(大写)ASCLL(小写)
A 0100 0001a 0110 0001

字母用八位二进制数表示,大小写的区别是第5位上0和1的区别。
大写字母-小写字母 or 0100 0001,0010 0000b
小写字母-大写字母 and 0110 0001, 1101 1111b

代码

assume cs:codesg,ss:stacksg,ds:datasg

stacksg segment
    dw 0,0,0,0,0,0,0,0
stacksg ends

datasg segment
    db '1. display      '
    db '2. brows        '
    db '3. replace      '
    db '4. modify       '
datasg ends

codesg segment
    start: mov ax,stacksg
           mov ss,ax
           mov sp,16
           mov ax,datasg
           mov ds,ax
           mov cx,4
           mov bx,0
       s0:
           push cx
           mov si,0
           mov cx,4
        s:
           mov al,[bx+si+3]
           and al,11011111b
           mov [bx+si+3],al
           inc si
           loop s
           add bx,16
           pop cx
           loop s0

        mov ax,4c00h
        int 21h



codesg ends
    end start

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值