汇编语言编程基础习题详解及答案

版权申诉
5星 · 超过95%的资源 1 下载量 31 浏览量 更新于2024-07-02 1 收藏 201KB DOC 举报
本资源是一份汇编语言程序设计的训练题及答案,共包含12道题目,涵盖了汇编语言的基础知识和指令理解。以下是各题目的详细解析: 1. 问题1考察的是指令寻址方式,JMPFARPTRDONE指令表明它进行的是段间转移,且是直接寻址,因此选项C正确。 2. 第二题涉及指令执行后的结果,首先将AL寄存器内容82H加载到AX,然后执行CBW(Complement Word: AX),将AX内容取反并扩展为16位,因此最终结果是AX=0FF82H,选A。 3. 第三题考查内存分段限制,8088/8086系统每个段的最大容量是64KB,即64K个字节,选项D正确。 4. CPU访问存储器时,发出的是物理地址,这是实际内存中的地址,因此答案是A。 5. 题目要求计算语句“BUFDW10HDUP(3DUP(2,10H),3,5)”分配的存储单元字节数。此题涉及到内存复制操作,首先3DUP(2,10H)复制三次,然后与10H重复,最后再复制3次,总共是10H*9个字节,加上初始的10H,共100H字节,选B。 6. 若要使AX从-15变为15,负数转正数可以使用NEG或NOT指令,但考虑到原码表示,NOT指令会将负数变更为更正的负数,因此应选择NEGAX,选A。 7. 在8086/8088系统中,执行MOV指令时不改变标志位,如进位标志CF、借位标志SF、零标志ZF、溢出标志OF等,所以答案是A。 8. 题目中两个操作数相加后,79(1011111)和0B1H(00001011)相加,结果有进位,但不会产生溢出,因此CF置1,OF保持不变,选D。 9. 检查BUF是否为正偶数的程序段中,首先读取BUF内容,然后测试AL的低四位与80H(正偶数的二进制表示)的与运算,如果结果不为零,则不是偶数,所以正确的操作是先读取再测试,选项C正确。 10. 选项A中的MOV AL,42H是将立即数42H赋值给AL,操作数在代码段,符合要求。 11. OFFSETVAR指示的是变量VAR在代码段的偏移地址,等价于MOVBX,VAR的相对地址形式,所以选项D正确。 12. A项会改变AX的内容;C项修改[SI]中的值;D项比较AX和BX,只有B项LDSBX,VAR是将变量VAR的地址加载到BX,对源和目的操作数均无直接影响,选B。 通过这些题目,学习者可以检验和巩固自己的汇编语言基础,包括寻址方式、指令操作、内存管理以及标志位的处理等。