
汇编语言试卷(20220112210248).pdf
8页2010-2011 汇编语言程序设计期末试卷A 卷一、填空题(每空1 分,共计 10 分)1 “MOV AX,0 ”可寄存器AX 清 0另外再写出三条可使寄存器AX 清 0的指令1)_(2)_(3)_2标号可以有两种类型属性它们是_和_ _3程序设计的三种基本结构是:、4分别用一条语句实现下述指明的功能(1)双字变量DWVAR 存放的地址指针送ES 和 SI2)地址表达式VAR4 的偏移地址送字变量ADDR 二、判断下列指令的正确性如果错误,请指出错误的原因每题 1 分,共计 10 分)(1)MOVCX ,DL(2)XCHGSI ,3(3)MOV AX, BX+3(4)POPCS(5)SHL AX, CX(6)MUL16(7)AND7FFFH,AX(8)MOVCS, AX(9)SUBSI ,DI(10)MOV SI, 20H三、简答题(每题5 分,共计 20 分)1. 简述指令AND 和 TEST、NOT 和 NEG 之间的区别?2. 简述段内转移和段间转移的区别?3. 存储器寻址方式可分为哪几种?存储单元的有效地址有什么意义?4. REP 前缀的作用是什么?能否用指令REP LODSB 读取 DS:SI 所指内存中的每个字符来进行处理?若不能,试说明原因。
四、指令分析题(每题10 分,共计20 分)1. 下列程序段中, 各指令执行后AX 、CF、 OF、ZF 和 SF 的内容如何变化MOV AX, 0DEC AXNOT AXAND AX, 0FFFFHCMP AX, 0FFFFHSUB AX, 1200HMOV CL , 5SAR AX, 1SAR AX, CLADD AX, 0FFFFHNEG AX2. 假设各寄存器及物理地址中的内容如下,(DS) 2000H,(BX ) 0100H,(SI) 0002H, (20100H) 12H, (20101H) 34H, ( 20102H)56H,(20103H) 78H, (21200H) 2AH , (21201H) 4CH, (21202H)B7H, (21203H) 65H,指出各条指令源操作数的寻址方式,以及完成后AX 寄存器中的内容(1)MOV AX ,1200H(2)MOV AX ,BX(3)MOV AX ,1200H(4)MOV AX ,BX(5)MOV AX ,1100HBX(6)MOV AX ,BXSI(7)MOV AX ,1100HBXSI五、程序分析题(每题5 分,共计20 分)1下列程序段运行后,Y 单元开始的存储区存放的数据是什么?XDB78HYDB3 DUP(?)LEA SI, YMOV CX, 3MOV AL, XLP:SAR AL, 1MOV SI, ALINC SILOOP LP2分析下列程序段的功能OR DX, DXJNS L1NOT DXNOT AXADD AX, 1ADC DX, 0L1:3下列程序片段完成什么功能,试采用堆栈的操作实现同样的功能。
XCHGAX,SIXCHGAX,DIXCHGAX,SI4.下列程序段执行后, DAT2 的前 5 个单元的内容是什么?DAT1DB123456789 DAT2DB10 DUP(?)LEA SI,DAT1LEA DI,DAT2MOVCX, DAT2-DAT1ADDSI,CXDECSILP:MOVAL, SIMOVDI,ALDECSIINC DILOOPLPHLT六、程序设计题(每题10 分,共计20 分)1把下列C 语言的语句改写成等价的汇编语言程序段(不考虑运算过程中的溢出)If (a10 & c%8=5)a= 20 + b+;c = c 2;else a= 21 (+c);b-;其中:变量a、b 和 c 都是有符号的16 位整形( int)变量2. 编写程序完成求1+2+3+ +N 的累加和,直到累加和超过1000 为止统计被累加的自然数个数从CN 字单元,累加和送SUM 字单元2010-2011 汇编语言程序设计期末试卷A 卷 参考答案一、填空题(每空1 分,共计 10 分)1 ( 1) XORAX, AX( 2) AND AX, 0( 3) SUB AX, AX2NEAR, FAR3顺序结构、分支(条件选择)结构、循环结构4 ( 1)LES SI,DWVAR( 2)MOV ADDR, OFFSET VAR4二、判断下列指令的正确性。
如果错误,请指出错误所在(每题1 分,共计 10 分)(1)错误!寄存器大小不一致(2)错误!不能与立即数进行交换(3)错误!表达式错误(4)错误! POP 指令的对象不能是CS,PUSH 可以(5)错误!第二个操作数,表示移动次数可以使用CL,但不能是CX(6)错误!乘法指令操作数不可以使用立即数(7)错误!立即数不能是目的操作数(8)错误!代码段寄存器CS 不能为目的操作数(9)错误!如果指令的操作数有两个,只能有一个是存储器操作数(10)错误!必须说明目的操作数数据存储类型三、简答题(每题5 分,共计 20 分)1. 简述指令AND 和 TEST、NOT 和 NEG 之间的区别?答:TEST 检测位指令把两个操作数进行逻辑“与”(AND )运算,并根据运算结果设置相应的标志位TEST 指令并不保存该运算结果,不会改变指令中的操作数与AND 在运算结果的处理上有不同NEG 求补指令, 功能相当于 “操作数 =0-操作数”,即改变操作数的正、负号 NOT 是逻辑非运算,作用是将操作数按位求反2. 简述段内转移和段间转移的区别?答:段间转移和段内转移的本质区别是有没有对CS 进行设置,如果设置了新的 CS 代码寄存器,程序将转移到另一个段中,即实现了段间转移;否则 CS 和原来一致,则在同一代码段中。
3. 存储器寻址方式可分为哪几种?存储单元的有效地址有什么意义?答:存储器寻址方式可分为7 种:(1)立即寻址;(2)直接寻址;(3)寄存器寻址;(4)寄存器间接寻址;(5)寄存器相对寻址;(6)基址加变址寻址;(7)相对基址加变址寻址;存储器的有效地址是一个16 位的无符号数; 用来表示存储单元的地址与所在段的起始地址的差值,又称称偏移地址(Offset) 4. REP 前缀的作用是什么?能否用指令REP LODSB 读取 DS:SI 所指内存中的每个字符来进行处理?若不能,试说明原因答:REP 是重复前缀指令,其作用是重复其后字符串操作指令,重复次数由 CX 决定采用 REP LODSB 虽然可以读取DS:SI 所指内存中的一连串字符,但是由于其他指令无法处理取出的所有数据指令结束后留在AL 中的仅为最后一个取出的字符的ASCII 码四、指令分析题(每题10 分,共计20 分)1. 下列程序段中,各指令执行后AX 、CF、ZF 和 SF 的内容如何变化MOV AX, 0(1)(AX) =0, CF、ZF、SF 无影响DEC AX(2)(AX)=0FFFFH,CF 无影响 , ZF=0, SF=1NOT AX(3)(AX)=0, CF 无影响 , ZF=0, SF=1AND AX, 0FFFFH(4)(AX)=0, CF=0, ZF=1 ,SF=0CMP AX, 0FFFFH(5)(AX)=0, CF=1, ZF=0, SF=0SUB AX, 1200H(6)(AX)=0EE00H,CF=1, ZF=0, SF=1MOV CL , 5SAR AX, 1(7)(AX)=0F700H, CF=0, ZF=0, SF=1SAR AX, CL(8)(AX)=0FFB8H,CF=0, ZF=0, SF=1ADD AX, 0FFFFH(9)(AX)=0FFB7H,CF=1, ZF=0, SF=1NEG AX(10)(AX)=0049H,CF=1, ZF=0, SF=02. (1)立即寻址方式(AX ) 1200H(2) 寄存器寻址, (AX ) 0100H(3) 直接寻址,( AX ) 4C2AH(4) 寄存器间接寻址, (AX ) 3412H(5) 寄存器相对寻址, (AX ) 4C2AH(6)基址加变址寻址, ( AX ) 7856H(7)相对基址加变址寻址, (AX ) 65B7H五、程序分析题(每题5 分,共计20 分)1 3CH ,1EH,0FH2.对 32 位数(高位在DX,低位在 AX)求补(绝对值)3.程序实现 SI 和DI 中的内容交换; AX中内容不变;堆栈操作指令完成同样功能,如下所示:PUSHSIPUSHDIPOP SIPOP DI4.39H,38H,37H,36H,35H。
数字 98765对应的ASCII 码)六、程序设计题(每题10 分,共计20 分)1. 参考程序ADW ?BDW ?CDW ?MOV BX, BMOV CL, 2SAR BX, CL; 计算 B/4,结果存在BX 中MOV CX, CAND CX, 0007H; 计算 C%8,结果存在CX 中CMP BX, 10JBE NEXT1CMP CX, 5JNE NEXT1NEXT2:; (A10&C%8=5)计算为真MOV BX, BMOV AX, 20ADD AX, BXMOV A, AXINC BXMOV B, BXMOV CX, CSAL, CX, 1SAL, CX, 1MOV C, CXJMP NEXT3NEXT1:MOV AX, ACMP AX, 1JB NEXT2MOV CX, C; (A10&C%8=5)计算为假INC CXMOV C, CXMOV AX, 21SUB AX, CXMOV A, AXMOV BX, BDEC BXMOV B, BXNEXT3:2. 参考程序DATA SEGMENTSUMDW ?NDW ?DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AXMOV AX, 0MOV BX, 0LP:INC BXADD AX, BXCMP AX, 1000JBE LPMOV SUM, AXMOV N, BXMOV AH, 4CHINT 21HCODE ENDSEND START。





![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)






