鱼老师和各位高手好,我有个关于检测点2.1的问题!!!急!!!
本帖最后由 key 于 2011-6-17 11:35 编辑关于第十三题.
我先贴上前两道题,一遍知道数值....
11.add ah,ah AX=D882H
12.add al ,6 AX=D888H
见证奇迹的时刻来....我直接贴鱼老师的原话.
十三、add al, al →→ AX= D810H(注意要将AH和AL当成两个独立的来看待哦~~~)
这道题是让AX的低位自加一次对吧?那么就是十六进制"88"+"88"=110. 结果AX=D810H,是怎么出来的呢?
如果按照鱼老师括号里的把AH和AL单独看,难道这道题是AH+AL吗? 那就是"D8"+"88"了...结果是160.
160的16如果进成1.那么D810H是不是就成立了?
求解.
补充问题:如果真是的低位自加,那么结果又是什么呢?
求高手附解释.不胜感激!!!!!!!!!!!!!!!{:5_96:}
在线等,求知求解! 本帖最后由 再生缘 于 2011-6-17 12:54 编辑
第12AX=D888H
第13 add al ,al ax是d888H分成高八位和低八位 就是ah等于d8,al等于88那么al=al+al就等于88+88=110这时只算出al而已那么加上ah d8 答案应该是d910H才对的呀!怎么会是d810H呢?
原来是al只能存储2位 也就是只能存储10 所以ax就是d810H ,但在计算器上结果就是d910H
计算机把AL,AH看成两个单元 AL+AL 最大数只能存FF 产生的进位到标志寄存器去了 不会进到ah中 ,不会修改现在的AH的值AX=AH^8+AL建义多看几次 小甲鱼的汇编视屏
感谢再生缘和sbwcwusi 两位达人,我刚开始看,还有很多不懂!!!总之,感谢二位! ax = 16位寄存器分高位低位
所以AX = AH,AL
AH = 0000 0000H ==1 Byte H不是16进制的,是代表高位
同理AL = 0000 0000 = 1Byte 代表高位
AX=AH+AL
AX=1 word word代表1个字,即2个字节
高位加低位=高位放高位,低位放低位
例如:AH = 10,AL = 20
AH + AL = 1020 懂了?但是不能超过1个字奥!
AH,AL =AX16位的寄存器,因为intel要兼容8086处理器,8086上一代处理器是8位的
如果AH+AH=超过了8位,比如18D。
去掉1 ,所以等于8D,这里的去掉不代表删掉奥!
页:
[1]