某计算机采用16位定长指令字格式,其CPU中有一个标志寄存器,其中包含进位/借位标志CF、零标志ZF和符号标志NF。假定为该机设计了条件转移指令,其格式如下: 其中,00000为操作码OP;C、Z和N分别为CF、ZF和NF的对应检测位,某检测位为1时表示

admin2015-12-30  30

问题 某计算机采用16位定长指令字格式,其CPU中有一个标志寄存器,其中包含进位/借位标志CF、零标志ZF和符号标志NF。假定为该机设计了条件转移指令,其格式如下:

其中,00000为操作码OP;C、Z和N分别为CF、ZF和NF的对应检测位,某检测位为1时表示需检测对应标志,需检测的标志位中只要有一个为1就转移,否则不转移,例如,若C=1,Z=0,N=1,则需检测CF和NF的值,当CF=1或NF=1时发生转移;OFFSET是相对偏移量,用补码表示。转移执行时,转移目标地址为(PC)+2+2×OFFSET;顺序执行时,下条指令地址为(PC)+2。
请回答下列问题:
某条件转移指令的地址为200CH,指令内容如下图所示,若该指令执行时CF=0,ZF=0,NF=1,则该指令执行后PC的值是多少?若该指令执行时CF=1,ZF=0,NF=0,则该指令执行后PC的值又是多少?请给出计算过程。

选项

答案指令中C=0,Z=1,N=1,故应根据ZF和NF的值来判断是否转移。当CF=0,ZF=0,NF=1时,需转移。己知指令中偏移量为1110 0011B=E3H,符号扩展后为FFE3 H,左移一位(乘2)后为FFC6H,故PC的值(即转移目标地址)为200CH+2+FFC6H=IFD4H。当CF=1,ZF=0,NF=0时不转移。PC的值为:200CH+2=200EH。

解析
转载请注明原文地址:https://kaotiyun.com/show/K7xi777K
0

最新回复(0)