汇编语言程序设计 - 将AX寄存器中的16位数分成4组, 每组4位, 然后把这四组数分别放在AL、BL、CL和DL中

80x86汇编习题
题目描述:将AX寄存器中的16位数分成4组, 每组4位, 然后把这四组数分别放在AL、BL、CL和DL中

思路:

1,移动变量到AX中

2,利用循环移动的思维去操作

3,总共4组,循环4次,每循环一次,用与操作取最后4位即可

4,注意:CL要用来循环移位的时候的参数,所以要其他寄存器暂存

DATAS SEGMENT
	VAR DW 6C3BH
DATAS ENDS

STACKS SEGMENT
    DW 100H DUP(?)
	TOP LABEL WORD  
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AX,STACKS
    MOV SS,AX
    LEA SP,TOP		;初始化
    
    MOV AX,VAR		;变量存入AX
    MOV SI,0FH		;每次与操作最右边4位
    
    MOV DX,AX		;整个AX放到DX中
    AND DX,SI		;与操作,留下最后4位
    
    MOV CL,4
    ROR AX,CL		;循环右移4位
    MOV DI,AX		;CX还要用,先放DI
    AND DI,SI		;与操作,留下最后4位
    
    ROR AX,CL		;循环右移4位
    MOV BX,AX
    AND BX,SI		;与操作,留下最后4位
    
    ROR AX,CL		;循环右移4位
    AND AX,SI		;与操作,留下最后4位
    
    MOV CX,DI		;把DI暂存的CX的拿回来
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值