1、SHL AL,CL 执行上述指令后CF和AL的内容是( )。AF=1,(AL)=00001001AF=0,(AL)=00001001AF=1,(AL)=00100000AF=0,(AL)=00100000C3. 下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为( )。TEST BH,01HK1 JNEJZJSJC4. 已知标号NEXT与指令 MOV AX,TYPE NEXT在同一个段内,则AX的值为( )。12-1B5. DATA SEGMENTBUF DB 1,2,3,4,5COUNT EQU -BUFDATA ENDS在以上数据段中COUNT的值为( )346
2、6. 下列是8位二进制数的补码,其中真值最大的是( )。10001000111111110000000000000001D7. 16位有符号数的补码所表示的十进制数的范围是( )。-32767+32768-32768+32767-65535+655360655358. 下面的XCHG指令中,语法正确的是( )。XCHG AL,DSXCHG BL,BXXCHG AL,0FHXCHG BUF1,BUF29. LDS SI,ES:2000H指令的全部功能是( )。把地址2000H送SI把地址2000H字单元的内容送SI把地址2000H字单元内容送SI,把2002H字单元内容送DS把地址2000H字单
3、元内容送DS,把2002H字单元内容送SI10. 数据定义如下: BUF1 DB 10 BUF2 DW 20 DUP(?) 实现将BUF1单元的内容与BUF2开始的第三个字节单元内容相比较的指令是( )。CMP BUF1,BYTE PTR BUF23MOV AL,BUF1 CMP AL,BYTE PTR BUF22 MOV AL,BUF1CMP AL,BUF22 CMP AL BUF23 (注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。)二、主观题(共15道小题)11.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非
4、法的?它们的错误是什么?(1) MOV BP, AL ;(2) MOV WORD_OP BX+4*3DI, SP(3) MOV WORD_OP1, WORD_OP2 ;(4) MOV AX, WORD_OP1DX ;(5) MOV SAVE_WORD, DS(6) MOV SP, SS:DATA_WORD BXSI(7) MOV BXSI, 2 ;(8) MOV AX, WORD_OP1+WORD_OP2(9) MOV AX, WORD_OP1-WORD_OP2+100(10) MOV WORD_OP1, WORD_OP1-WORD_OP2参考答案:错,寄存器类型不匹配错,不能都是存储器操作数
5、错,DX不能用于存储器寻址错,BXSI未指出数据类型12.假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:(1) ADD VAR1, VAR2 ;(2) SUB AL, VAR1 ;(3) JMP LAB SI ;(4) JNZ VAR1 ;(5) JMP NEAR LAB ;不能都是存储器操作数数据类型不匹配LAB是标号而不是变量名,后面不能加SIVAR1是变量而不是标号应使用NEAR PTR13.有符号定义语句如下:BUFF DB 1, 2, 3, 123EBUFF DB 0L EQU EBUFF - BUFF问L的值是多少?L6。14.假设程序中的数据定义如下:L
6、NAME DB 30 DUP (?ADDRESS DB 30 DUP (?CITY DB 15 DUP (?CODE_LIST DB 1, 7, 8, 3, 2(1) 用一条MOV指令将LNAME的偏移地址放入AX。(2) 用一条指令将CODE_LIST的头两个字节的内容放入SI。(3) 用一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。(1) MOV AX, OFFSET LNAME (2) MOV SI, WORD PTR CODE_LIST (3) CODE_LENGTH EQU -CODELIST;此语句必须放在CODELIST语句之后15.试编写一个汇编语言
7、程序,要求对键盘输入的小写字母用大写字母显示出来。程序段如下:BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用INT 21HCMP AL, a;输入字符z吗?JA STOPSUB AL, 20H ;转换为大写字母,用AND AL, 1101 1111B也可MOV DL, AL ;显示一个字符的DOS调用MOV AH, 2JMP BEGINSTOP: RET16.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。DEC AL ;得到前导字符准备显示三个字符MOV CX, 3DISPLAY: MOV AH, 2 ;INC DLLOOP DI
8、SPLAY17.下面的程序段有错吗?若有,请指出错误。CRAY PROCPUSH AXADD AX, BXRETENDP CRAY程序有错。改正如下:CRAY ENDP ;CRAY是过程名,应放在ENDP的前面18.写一段子程序SKIPLINES,完成输出空行的功能。空出的行数在AX寄存器中。程序如下:CSEG SEGMENTSKIPLINES PROC FARASSUME CS: CSEG PUSH CXPUSH DXMOV CX, AXDISP: MOV DL, 0DH ;显示回车换行,即输出空行MOV AH, 2 ;MOV DL, 0AHLOOP DISPPOP DXPOP CXSKIPLINES ENDPEND19.编写一条宏指令CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。宏定义如下:CLRB MACRO N, CFILMOV CX, NCLDMOV AL, 取空格符的ASCII码LEA DI, CFILREP STOSBENDM20. 写出分配给下列中断类型号在中断向量表中的物理地址。(1) INT 12H (2) INT 8(1) 中断类型号12H在中断向量表中的物理地址为00048H、00049H、0004AH、0004BH;(2) 中断类型号8在中断向量表中的物理地址为00020H、00021H、00022H、00023
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1