8086汇编语言寄存器清零学习

mov ax, 0 

    这样应清零了;

sub ax, ax

    这样也清了;

xor ax, ax

    这样也清零了;自己跟自己异或,异或是同则结果为0、不同结果为1;自己和自己,每一位都是相同的,异或后结果为0;

and ax, 0

    和0相与,这样也清零了;

自己写代码用 xor ax, ax ,用这个就对了,都用这个;

看一下xor ax, ax 的情况;单步,执行完mov语句之后,

执行完xor语句之后 ;

 

在汇编中将AL寄存器清0、将AL寄存器高2位清0分别是用什么指令实现的

    1、AND AX,0FF00H。

    2、AND AX,0FF3FH。

先随便给ax赋一个值,然后执行   AND AX,0FF3FH   看一下;单步,

 

 

 

FF3F的二进制是如下,

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用8086汇编语言实现两位数相乘的示例代码: ``` ; 两位数相乘的示例代码 ; 假设要相乘的两个数分别为 A 和 B,A 的十位数为 ah,个位数为 al,B 的十位数为 bh,个位数为 bl ; 计算过程为:A x B = (ah * 10 + al) x (bh * 10 + bl) = (ah x bh x 100) + ((ah x bl + al x bh) x 10) + (al x bl) MOV AL, [A] ; 将 A 的个位数 al 装入 AL 寄存器 MOV AH, 0 ; 将 AH 寄存器清零 MOV BL, [B] ; 将 B 的个位数 bl 装入 BL 寄存器 MOV BH, 0 ; 将 BH 寄存器清零 MUL BL ; 将 AL 寄存器和 BL 寄存器中的数相乘,结果存在 AX 寄存器中 MOV DL, AL ; 将 AX 寄存器的低8位存入 DL 寄存器 MOV AH, 0 ; 将 AH 寄存器清零 MOV AL, [A+1] ; 将 A 的十位数 ah 装入 AL 寄存器 MUL BL ; 将 AL 寄存器和 BL 寄存器中的数相乘,结果存在 AX 寄存器中 ADD DL, AL ; 将 AX 寄存器的低8位加上 DL 寄存器中的数 MOV AL, [B+1] ; 将 B 的十位数 bh 装入 AL 寄存器 MUL [A] ; 将 AL 寄存器和 A 的个位数 al 相乘,结果存在 AX 寄存器中 ADD DL, AL ; 将 AX 寄存器的低8位加上 DL 寄存器中的数 MOV AH, DL ; 将 DL 寄存器的值存入 AH 寄存器 MOV AL, 0 ; 将 AL 寄存器清零 MOV AL, [A] ; 将 A 的个位数 al 装入 AL 寄存器 MUL [B+1] ; 将 AL 寄存器和 B 的十位数 bh 相乘,结果存在 AX 寄存器中 ADD AH, AL ; 将 AX 寄存器的高8位加上 AH 寄存器中的数 MOV AL, [A+1] ; 将 A 的十位数 ah 装入 AL 寄存器 MUL [B+1] ; 将 AL 寄存器和 B 的十位数 bh 相乘,结果存在 AX 寄存器中 ADD AH, AL ; 将 AX 寄存器的高8位加上 AH 寄存器中的数 RET ; 返回结果,结果存在 AX 寄存器中 ``` 需要注意的是,这只是一个示例代码,仅供参考。实际应用中,还需要考虑各种边界情况和异常处理,以保证程序的正确性和鲁棒性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值