. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->综合研究
主题 : :  那位哥给分析一下实验研究3.1的程序  [待解决] 回复[ 4次 ]   点击[ 610次 ]  
kgate1
[帖 主] [ 发表时间:2011-05-03 18:17 ] 
荣誉值:0
信誉值:0
注册日期:2011-04-29 18:09
main()
{
 *(char *)0x2000='a';
 *(int  *)0x2000=0xf;
 *(char far *)0x20001000='a';
 
_AX=0x2000;
*(char *)_AX='b';

_BX=0x1000;
*(char *) (_BX+_BX)='a';
*(char far *)(0x20001000+_BX)=*(char *)_AX;
}

最后的赋值是多少?



重点分析
*(char *) (_BX+_BX)='a';
*(char far *)(0x20001000+_BX)=*(char *)_AX;
对应汇编如下:


-u 1fa
0B85:01FA 55            PUSH    BP
0B85:01FB 8BEC          MOV     BP,SP
0B85:01FD C606002061    MOV     BYTE PTR [2000],61
0B85:0202 C70600200F00  MOV     WORD PTR [2000],000F
0B85:0208 BB0020        MOV     BX,2000
0B85:020B 8EC3          MOV     ES,BX
0B85:020D BB0010        MOV     BX,1000
0B85:0210 26            ES:
0B85:0211 C60761        MOV     BYTE PTR [BX],61
0B85:0214 B80020        MOV     AX,2000
0B85:0217 8BD8          MOV     BX,AX
0B85:0219 C60762        MOV     BYTE PTR [BX],62
0B85:021C BB0010        MOV     BX,1000
0B85:021F 03DB          ADD     BX,BX
0B85:0221 C60761        MOV     BYTE PTR [BX],61
0B85:0224 8BD8          MOV     BX,AX
0B85:0226 8A07          MOV     AL,[BX]
0B85:0228 33C9          XOR     CX,CX
0B85:022A 81C30010      ADD     BX,1000
0B85:022E 81D10020      ADC     CX,2000
0B85:0232 8EC1          MOV     ES,CX
0B85:0234 26            ES:
0B85:0235 8807          MOV     [BX],AL
0B85:0237 5D            POP     BP
0B85:0238 C3            RET
0B85:0239 C3            RET
0B85:023A 55            PUSH    BP
0B85:023B 8BEC          MOV     BP,SP
tomato
[第2楼] [ 回复时间:2012-03-13 23:31 ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
顶1楼。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved