汇编语言例题及解析分享【2】

(1)存储器7000H:500H~7000H:503H相邻存放两个16位数字,将其相加,结果送地址7000H:504H开始的地址单元。

图1.1:E命令修改内容,D命令查看内容

图1.2:A命令、T命令逐步执行

图1.3:D命令查看结果

(2)存储器7000H:500H~7000H:503H相邻存放两个32位数字,将其相加,结果送地址7000H:506H开始的地址单元。

图2.1:E命令修改内容,D命令查看

图2.2:A命令、T命令逐步执行

(3)内存DS:[1000H]开始连续存放着两个8位无符号数12H和34H,求12H*34H,结果存于DS:[1002H]开始的内存单元。

图3.1:E命令修改存放值
在这里插入图片描述
(4)用A命令写程序段,要求用移位指令完成将AX乘以8,加上BX之后,再除以4。其中AX,BX均为带符号数。

图一:对AX,BX赋初值

图二:SHL和SHR指令执行

T命令单步执行

 (2)用一条逻辑指令实现以下功能
   1. 清除BX寄存器;

图四:对BX赋初值

图五:MOV指令清除BX寄存器

   2. 使DX寄存器的高3位为1,其余位不变;

图六:对DX赋初值,执行OR指令

   3.使BL的低4位为0,其余位不变;

图七:对BX赋初值

图八:执行AND指令

   4. 将AX中的第0,2,4,6位取反,其他位不变。

AX初始值:0110 0110 0110 0110=6666
按位取反:0110 0110 0011 0011=6633
解:构造和AX相“异或”的操作数X,X的位数和AX一致,其中,X的第0,2,4,6位取1,其他位为0,即0000 0000 0101 0101。1+4+16+64=85

图九:对AX赋初值

图十:执行XOR指令
(5)判断BX的正负性。若为正,则将BX的赋给AX,否则AX置为-1。
CMP BX,0
JG NEXT
MOV AX,FFFF
JMP EXIT
NEXT:MOV AX,BX
EXIT:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

结论:BX为负

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值