问答题
设某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分为。01AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23A0H。
问答题
当执行取数指令时,如为变址寻址方式,则取出的数为多少?
【正确答案】变址寻址时,操作数S=((Rx)+A)=(23A0H+001AH)=(23BAH)=1748H。
【答案解析】
问答题
如为间接寻址,取出的数为多少?
【正确答案】间接寻址时,操作数S=((A))=((001AH))=(23A0H)=2600H。
【答案解析】
问答题
当执行转移指令时,转移地址为多少?
已知存储器的部分地址及相应内容,见下表。
表
|
| 地址 | 内容 |
001AH 1F05H 1F1FH 23A0H 23BAH | 23A0H 2400H 2500H 2600H 1748H |
|
【正确答案】转移指令使用相对寻址,转移地址=(PC)+A=IF05H+001AH=1F1FH。
因为在本题中没有指出指令的长度,故此题未考虑PC值的更新。
【答案解析】[解析] 前两个小题涉及数据寻址,其最终目的是寻找操作数,第3小题涉及指令寻址,其目的是寻找下一条将要执行的指令地址。
基本寻址方式的比较见下表。表中列出的偏移寻址包括变址寻址、基址寻址和相对寻址3种方式。
表
|
| 寻址方式 | 规则 | 主要优点 | 主要缺点 |
| 立即寻址 | 操作数=A | 无须访问存储器 | 操作数范围受限 |
| 寄存器寻址 | EA=R | 无须访问存储器 | 寻址空间受限 |
| 直接寻址 | EA=A | 简单 | 寻址空间受限 |
| 间接寻址 | EA=(A) | 寻址空间大 | 多次访问主存 |
| 寄存器间接寻址 | EA=(R) | 寻址空间大 | 多访问一次主存 |
| 偏移寻址 | EA=(R)+A | 灵活 | 复杂 |
相对寻址方式中的PC值更新问题是一个需要注意的问题。有些计算机是以当前指令地址为基准的,有些计算机是以下条指令地址为基准的。这是因为有的机器是在当前指令执行完时,才将Pc的内容加1(或加增量),而有的机器是在取出当前指令后立即将PC的内容加1(或加增量),使之变成下条指令的地址。通常采用第二种方式比较多,如果题目中给出了指令的长度,则必须考虑PC值的更新问题。