汇编语言编程的问题。
发布网友
发布时间:2022-04-24 06:18
我来回答
共3个回答
热心网友
时间:2023-10-08 18:56
1. JMP BX ; 如果(BX)=1020H,那么(IP)=1020H,因为此种形式为通过寄存器的段内间接转移,执行时将把寄存器的内容直接送IP,所以执行此指令后IP的值为1020H
2. JMP TAB[BX][SI];如果(DS)=2000H,(BX)=1020H,(SI)=0002H,TAB=0010H,(21032H)1234H,那么(IP)=1234H。此种形式为通过存储单元(TAB[BX][SI])段内间接转移,存储单元的内容即为转移的目标地址(偏移量)此存储单元的EA=0010H+1020H+0002H=1032H,其物理地址PA=(DS)*10H+EA=20000H+1032H=21032H,而内存单元(21032H)的内容为1234H,所以执行此指令后IP的值为1234H
热心网友
时间:2023-10-08 18:56
不可以这样理解,当有修改ip这样的指令时,执行代码后ip被修改
热心网友
时间:2023-10-08 18:57
1.IP=BX=1020H
2.把内存的物理地址算出来 EA=1032H 物理地址为21032H 把该值取出来IP=1234H
3.可以这么理解追问我是想说那个IP不是指的是偏移地址嘛,怎么后来IP的内容等于物理地址的内容呢?
追答Ip从来就是偏移地址,偏移地址是16位二进制,物理地址是20位二进制,先算物理地址,可以知道访问内存的地址,从里面把内容取出来,取出的内容是16位,然后赋给ip