汇编-寄存器数据的存储与变化-算术运算对标志位的影响

Posted whatiwhere

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编-寄存器数据的存储与变化-算术运算对标志位的影响相关的知识,希望对你有一定的参考价值。

实验3:寄存器数据的存储与变化-算术运算对标志位的影响

1.项目设计
将操作数放在2000H和2001H两个单元中,编程进行以下的算术运算 ,并记录标志位的状态。
(1)41H+3BH,结果放在2002H单元中;
(2)41H+5AH,结果放在2003H单元中;
(3)AFH+7EH,结果放在2004H单元中;
(4)E3H+1DH,结果放在2005H单元中;
(5)41H-3BH,结果放在2006H单元中;
(6)3BH-41H,结果放在2007H单元中;
2.项目实施
(1)写出指令代码段,例如41H+3BH
MOV AX, [2000H]
ADD AX, [2001H]
MOV [2002H], AX
(2)写出指令的机器代码:
例如上面指令的机器代码为 A0 00 20
04 01 20
A2 02 20
(3)在debug中调试程序。
3.项目运行
(1)运行每一段指令,按表1格式在项目报告中记录结果。

实验步骤:

直接进入DOSBox 进行相关挂载操作

技术分享图片

切换至c盘 输入debug

  • -A命令进入编写代码界面
  • -R查看当前寄存器中指令
  • -T查看寄存器下一地址的内容以及相应的机器码
  • -D查看DS内数据存放的结果

1.1)程序1代码以及机器码及结果
技术分享图片
分别写入三条语句来进行计算41H+3BH并放到2002H单元内
按ENTER键 再输入R查看当前寄存器中的内容,可以看到对应汇编语句所对应的机器码。 由于涉及到32位与64位操作系统,所生成的机器码会有所差别。
使用-T查看寄存器下一地址的内容和相应的机器码
注意:使用-T查看直到运行完最后一条汇编指令为止。

此时,使用-D xxx xxx
即-D 2002 2002即可查看写在2002H单元内的内容
可知值为7C 相对于的NV UP EI PL NZ NA PO NC 为状态标志 ,具体参数参见此图

技术分享图片

当然例题1也能 使用AX 立即数计算 其也能计算41H+3BH的值。结果存在2002H 结果都是7C 但机器码不同
如图:

技术分享图片

2,1)程序2的相关指令和结果

技术分享图片
得到对应的SF,ZF,CF

技术分享图片

3)DEBUG写入代码进行T测试

技术分享图片
3.3)程序3代码以及机器码

技术分享图片

3.3)程序3结果及SFZFCF
技术分享图片
4)找到02的值
技术分享图片

4.1)程序4代码以及机器码

技术分享图片

4.3)得到SF,ZF,CF

技术分享图片

5.1)程序5代码以及机器码
技术分享图片
5.2)得到SF,ZF,CF与2006h的值

技术分享图片

6.1)程序6代码以及机器码
技术分享图片

6.2)程序6结果及SFZFCF
技术分享图片

7.1)程序7代码以及机器码以及结果

技术分享图片

个人得到的程序运行结果及CF,SF,ZF值

技术分享图片

相关参考资料

技术分享图片
机器码的构成结构

DOSBox下debug的使用 https://www.jianshu.com/p/bf7caf046420

机器码 与 汇编指令的关系https://blog.csdn.net/z3410218746/article/details/7485602

80x86寻址方式及指令系统https://wenku.baidu.com/view/d9bb76a40029bd64783e2c6a.html

计算机组成原理实验报告单算数运算及对标志位的影响https://wenku.baidu.com/view/5ed10f72d1f34693dbef3e12.html






































以上是关于汇编-寄存器数据的存储与变化-算术运算对标志位的影响的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言中 加法(ADD)与带进位加法(ADC)有啥区别?

汇编语言通用数据处理指令——算术运算类指令

汇编语言寄存器都叫啥?

汇编语言通用数据处理指令——算术运算类指令

实用汇编指令

tstcmpbnebeq指令