汇编语言程序设计 - 将BX中的无符号数以二进制形式输出+反转输出BX内容

8086汇编习题

正序输出BX内容

题目描述:将BX中的无符号数以二进制形式输出

思路:

1,往bx写入一个数

2,设定循环次数,十六次,BX中有16位,逐位处理

3,利用循环移位来解决问题,左移BX最高位到CF标志位,将这位放到DX,转为ACILL码

4,中断打印,继续循环

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 BX,VAR		;往bx写入一个数
    MOV CX,16		;循环次数
    
L1: ROL BX,1		;左移BX最高位到CF标志位
	MOV DL,0		;清空DX
	ADC DL,'0'		;将DL的acill码移动到0位置,加上CF判断位
	MOV AH,2		
	INT 21H			;中断输出DL内容
	LOOP L1			;循环
    
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
    
;输入内容:6C3BH
;输出内容:0110 1100 0011 1011

反转输出BX内容

思路:利用AX和CF作为中介,左移出BX到CF,右移CF到AX,结束之后把AX复制到BX即可。

DATAS SEGMENT
	VAR DW 1001110000101111B
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 BX,VAR
    MOV CX,16
LL:
	ROL BX,1
	RCR AX,1
	LOOP LL
    MOV VAR,AX
    
    
    MOV BX,VAR		;往bx写入一个数
    MOV CX,16		;循环次数
    
L1: ROL BX,1		;左移BX最高位到CF标志位
	MOV DL,0		;清空DX
	ADC DL,'0'		;将DL的acill码移动到0位置,加上CF判断位
	MOV AH,2		
	INT 21H			;中断输出DL内容
	LOOP L1			;循环
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值