本题库汇集了多套汇编语言课程的机考填空题,涵盖指令系统、程序设计等核心知识点,适用于备考复习和自我检测。
【汇编语言机考填空题库汇总1】
1. 题目涉及的知识点是位运算。在汇编语言中,`XOR`(异或)操作用于逐位比较两个操作数,若对应位相同,则结果为0;不同则结果为1。题目中的 `XOR AX, BX` 之后,AX的值变为 `BCFFH`。按位或运算则是如果任一位为1,则结果也为1,因此执行 `OR AX, BX` 后,AX仍保持原值 `BCFFH`。由于在异或操作后最高位(符号位)为1,表明结果是负数,所以无进位标志CF应设为1;然而题目给出的选项D表示CF为0,这可能意味着题目有误。
2. 执行 `JMP BX` 指令时,指令指针寄存器IP 的值设置为 DS段寄存器乘以 16 加上BX 寄存器。根据题设条件:DS=2000H、BX=1256H;table的偏移地址是无关紧要的信息。因此 IP 值计算如下:`2000H * 16 + 1256H = 232F7H`,符合选项C。
3. `AND` 操作符执行按位与运算、`OR` 执行或运算、`XOR` 异或操作和 `NEG/NOT` 分别用于求反及取反。给定AX=0A33AH 和 DX=F0F0H,执行 `AND AH, DL` 后,AH值为 `1010 0000B (A0H)`;接着执行 `XOR AL, DH` 将AL变为 `CAB`。随后的指令中,`NEG AH` 改变AH的值至60H(二进制:`0110 0000B`),而NOT操作则取反AL但题设未要求此结果;因此选项 C 正确。
4. 执行 `SBB AX, DX` 指令时AX=FF60H、DX=FF96H。由于DH为 FF,相当于借位1。减法运算后AX变为CAH(十六进制),标志位中CF保持不变而ZF因结果非零设为0;因此选项B正确。
5. `CMP` 指令用于比较 AX 和 BX 的值,并根据大小关系设置 CF和 ZF 标志。当AX=1000H、BX=2340H时,显然AX小于BX,则CF置位而ZF清零;因此选项B正确。
6. 这段程序通过`LOOPZ`指令循环执行直至AL与81H(二进制:1000 0001)按位与结果为零。BL的最终值取决于循环结束时SI所指向的数组元素,即 `14H`;因此选项A正确。
7. 此代码段涉及算术右移和左移操作。执行 `SAR AL, 1` 后,AL变为E4H(二进制:`1110 0100B`)。接下来的指令将AL向右移动两位得到F9H,并与BL相加得DDH;因此选项 B 正确。
8. 这段代码执行了一连串位操作,包括 `AND BX, 0FFFH`(保留低12位)、 `OR BX, 0F0FH`(在低4位置为1)和 `XOR BX, 00FFH`(进行异或),结果是BX的低四位不变、高四位取反,因此最终值为 `0F00H`;选项B正确。
9. 执行 `MOV AX, [BX]` 将从内存中读取数据到AX。因为BX先加偏移量EE1(实际数值3),所以结果是数组元素的地址即 3 号位置,值为 `30H` 的十六进制表示;因此选项B正确。
10. 此代码段首先将AL和DL相加得到 B7H,然后使用 `AND AL, 0FH` 清除高四位只保留低四位的结果是 0FH。