182868088 发表于 2014-9-26 04:49:51

检测点2.1的问题

大家别笑我啊,我的理解能力一般所以不得不来求助!我也不是没看过甲鱼的视频,而是看不东才来求助希望大家别喷哦

程序中的指令       指令执行后AX中的数据          指令执行后BX中的数据
mov ax,001AH    001AH                                 0000H   ---------------这一段我理解相当于001AH附值给ax
mov bx,0026H    001AH                                 0026H   ---------------这一段我理解相当于001AH附值给bx
addal,bl            0040H                                    0026HAX=al(低位)+bl(低位)10进制算得出是40那为什么BX的值没变呢?或者根本就不能那么算?
addah,bl         2640H                                    0026H    ---------------理解了上一条的问题那我也懂这条的数据
addbh,al         2640H                                    4026H
mov ah,0            0040H                                    4026H
addal,85H      00C5H                                    4026H
addal,93H             ?                                       4026H


希望知道的朋友们给点详细的解说以解除我的疑惑,尽量详细点谢谢你们了!~否则我没办法看下一集的内容也就中断了

xiaosawanjava 发表于 2014-9-26 09:24:57


addal,bl            0040H      这条指令展开后是这个形式al = al+bl   ,然而这又跟 bx 扯上什么关系了, bx的值为什么要变,结果是存放在al中。

182868088 发表于 2014-9-27 03:08:10

楼上的兄弟给了那个答案确实是这样,不过我自己又理解了这些数据的存放位置,并不是我想的那样加来加去的结果他们之间是一个对应关系 只有低位和低位相加 或者高位和高位可以相加 高位和地位的关系完全不是那么回事

xiaosawanjava 发表于 2014-9-27 09:58:21

没听明白

haiouda 发表于 2014-9-28 21:47:01

本帖最后由 haiouda 于 2014-9-28 21:50 编辑

                                                                                    BX
mov ax,001AH   ,即把001A放到AX中                           0
mov bx,0026h,    即把0026放到BX中                           0026
add al,bl   ,即 al=al+bl=1Ah+26h=40h                     0026
add bh,al 即:bh=bh+al=00+40=40                         4026
……

AX中(al为低8位, ah为高8位)    , 即AX可以理解为(AHAL)的组合
BX中 (bl为低8位, bh为高8位)   ,即BX可以理解为( BHBL)的组合

182868088 发表于 2014-10-11 13:42:34

感谢楼上的解答,基本上明白了!~

大个的糖果 发表于 2014-11-1 01:26:32

页: [1]
查看完整版本: 检测点2.1的问题