请教个汇编初级知识

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:45:32
我自己在读自考,今天在看《微机原理及应用》这本书时遇到点关于汇编的问题怎么想也想不明白,所以向大家请教,希望能解释的通俗点,我是才接触这本书的,之前也没基础,所以拜托各位了! 题是这样的∶ 执行下列指令后,标志寄存器中各状态位的值。 MOV AX,32C5H
ADD AX,546AH 我总不明白32C5H和546AH到底是地址还是个数啊?他们相加是二进制相加么?状态位的值如果知道怎么加我能对照书写出来,但就是不会加,麻烦各位大大能不能把这个题目的执行过程写一下,还有最后相加后AX为多少啊?包括换成的二进制数,和BCD码有没关系啊?我当例题来举一反三,书上没有例题看的好辛苦,又没有老师问……麻烦大家了!

1,32C5H和546AH是一个数(立即值).
2,都是16进制.当然是16进制相加.怎么相加是机算机的事了.不必追究.也可以化成2进制相加.
3,执行过程:MOV AX,32C5H ;把立即数给 AX
ADD AX,546AH ;将546AH 与 AX 的内容相加(即与数32C5H相加)
结果存入AX 中.结果AX=32C5H + 546AH =872FH
4.这里16进制与二进制转换和BCD码没关系.16进制与二进制是比较简单.建议你把这些进程转换等基础先掌握.872FH化成二进制为 1000 0111 0010 1111
注意下空格8对1000 7对0111 .......简单吧.
5,标志寄存器中各状态位的值为:CF的值为0 ;因为没有进位.
PF 0 1的个数为奇数
AF 1 低4位向高4位进位了
ZF 0 结果不为0
SF 0 结果为正
OF 0 无溢出
其它无关
明白了吗

32C5H

546AH 在此处是立即数

相加是两个数相加(也是二进制相加)

在图片里,你看吧

<