题目
执行下列指令后,AX寄存器[1]中的内容是什么TABLE DW 10,20,30,40,50ENTRY DW 3..MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,[BX]
执行下列指令后,AX寄存器[1]中的内容是什么TABLE DW 10,20,30,40,50ENTRY DW 3..MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,[BX]
题目解答
答案
答:(AX)=40
解析
步骤 1:初始化
- TABLE 是一个包含 5 个字(word)的数组,每个字占 2 个字节。数组内容为:10, 20, 30, 40, 50。
- ENTRY 是一个字,其值为 3。
- AX 是一个寄存器,用于存储数据。
步骤 2:MOV BX, OFFSET TABLE
- 将 TABLE 数组的起始地址加载到 BX 寄存器中。假设 TABLE 的起始地址为 0x1000,则 BX = 0x1000。
步骤 3:ADD BX, ENTRY
- 将 ENTRY 的值(3)乘以每个字的大小(2 字节),然后加到 BX 寄存器中。BX = 0x1000 + 3 * 2 = 0x1006。
步骤 4:MOV AX, [BX]
- 将 BX 寄存器指向的内存地址中的数据加载到 AX 寄存器中。BX = 0x1006,指向 TABLE 数组中的第 4 个字(从 0 开始计数),即 40。
- TABLE 是一个包含 5 个字(word)的数组,每个字占 2 个字节。数组内容为:10, 20, 30, 40, 50。
- ENTRY 是一个字,其值为 3。
- AX 是一个寄存器,用于存储数据。
步骤 2:MOV BX, OFFSET TABLE
- 将 TABLE 数组的起始地址加载到 BX 寄存器中。假设 TABLE 的起始地址为 0x1000,则 BX = 0x1000。
步骤 3:ADD BX, ENTRY
- 将 ENTRY 的值(3)乘以每个字的大小(2 字节),然后加到 BX 寄存器中。BX = 0x1000 + 3 * 2 = 0x1006。
步骤 4:MOV AX, [BX]
- 将 BX 寄存器指向的内存地址中的数据加载到 AX 寄存器中。BX = 0x1006,指向 TABLE 数组中的第 4 个字(从 0 开始计数),即 40。