《汇编语言程序设计》第2次作业-.pdf

上传人:索**** 文档编号:76243800 上传时间:2023-03-08 格式:PDF 页数:18 大小:106.68KB
返回 下载 相关 举报
《汇编语言程序设计》第2次作业-.pdf_第1页
第1页 / 共18页
《汇编语言程序设计》第2次作业-.pdf_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《《汇编语言程序设计》第2次作业-.pdf》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》第2次作业-.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、单项选择题(只有一个选项正确,共12道小题)1.若 PORT_VAL5,则执行指令 MOV BX,(PORT_VAL LT 5)AND 20)OR(PORT_VALE 5)AND 30)后 BX的内容是:()。(A)20(B)30(C)5(D)10 2.假设(AL)=10010010,MOV CL,4 SHL AL,CL 执行上述指令后 CF和 AL的内容是()。(A)AF=0,(AL)=00100000(B)AF=0,(AL)=00001001(C)AF=1,(AL)=00001001(D)AF=1,(AL)=00100000 3.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K

2、1处,横线处的指令应为()。TEST BH,01H K1 (A)JNE(B)JS(C)JZ(D)JC JJJJ JJJJ JJJJ 4.已知标号 NEXT 与指令 MOV AX,TYPE NEXT 在同一个段内,则AX的值为()。(A)2(B)-1(C)0(D)1 5.DATA SEGMENT BUF DB 1,2,3,4,5 COUNT EQU DATA ENDS 在以上数据段中 COUNT 的值为()(A)4(B)6(C)5(D)3 6.下列是 8 位二进制数的补码,其中真值最大的是()。(A)00000001(B)00000000(C)11111111(D)100010007.16 位有

3、符号数的补码所表示的十进制数的范围是()。(A)-32768+32767(B)-65535+65536J J JJJJ JJJJ JJJJ(C)065535(D)-32767+327688.下面的 XCHG 指令中,语法正确的是()。(A)XCHG AL,DS(B)XCHG AL,0FH(C)XCHG BL,BX(D)XCHG BUF1,BUF29.LDS SI,ES:2000H 指令的全部功能是()。(A)把地址2000H 字单元内容送 DS,把 2002H 字单元内容送 SI(B)把地址2000H 字单元的内容送 SI(C)把地址2000H 字单元内容送 SI,把 2002H 字单元内容送

4、 DS(D)把地址2000H 送 SI10.数据定义如下:BUF1 DB 10 BUF2 DW 20 DUP(?)实现将 BUF1 单元的内容与 BUF2 开始的第三个字节单元内容相比较的指令是()。(A)MOV AL,BUF1CMP AL,BUF22(B)MOV AL,BUF1J J JJJJ JJJJ J J CMP AL BUF2 3(C)MOV AL,BUF1 CMP AL,BYTE PTR BUF2 2(D)CMP BUF1,BYTE PTR BUF2311.某数据段如下:DATA SEGMENT ORG 20H X DB 12H Y DW 789AH DATA ENDS 则 Y 单

5、元的偏移址是()。(A)20H(B)21H(C)12H(D)012.MOV AL,-1 NEG AL XOR AL,65 上述程序段执行后,AL 中的内容是()。(A)61H(B)01H(C)64H(D)40H 二、主观题(共 21 道小题)JJJJ JJJJ J J(主观题请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。)13.在 0624H 单元内有一条二字节JMP SHORT OBJ 指令,如其中位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址OBJ 的值是多少?14.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(

6、SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名 VAL 的偏移地址为 0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,0ABH(2)MOV AX,BX(3)MOV AX,100H(4)MOV AX,VAL(5)MOV AX,BX(6)MOV AX,ES:BX(7)MOV AX,BP(8)MOV AX,SI(9)MOV AX,BX+10(10)MOV AX,VALBX(11)MOV AX,BXSI(12)MOV AX,VALBXSI15.设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。请写出

7、两条指令把字变量X 装入 AX 寄存器。16.求出以下各十六进制数与十六进制数62A0H 之和,并根据结果设置标志位SF、ZF、CF 和 OF 的值。(1)1234H(2)4321H(3)CFA0H(4)9D60H17.指出下列指令的错误:(1)MOV AH,BX;(2)MOV BX,SI;(3)MOV AX,SIDI;(4)MOV MYDAT BXSI,ES:AX;(5)MOV BYTE PTR BX,1000;(6)MOV BX,OFFSET MYDAT SI;(7)MOV CS,AX;(8)MOV ECX,AX;18.下面哪些指令是非法的?(假设 OP1,OP2是已经用 DB定义的变量)

8、(1)CMP 15,BX;(2)CMP OP1,25(3)CMP OP1,OP2;(4)CMP AX,OP1;19.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么?(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-WOR

9、D_OP2+100(10)MOV WORD_OP1,WORD_OP1-WORD_OP2 20.假设 VAR1和 VAR2为字变量,LAB为标号,试指出下列指令的错误之处:(1)ADD VAR1,VAR2;(2)SUB AL,VAR1;(3)JMP LAB SI;(4)JNZ VAR1;(5)JMP NEAR LAB;21.有符号定义语句如下:BUFF DB 1,2,3,123EBUFF DB 0 L EQU EBUFF-BUFF 问 L 的值是多少?22.假设程序中的数据定义如下:LNAME DB 30 DUP(?)ADDRESS DB 30 DUP(?)CITY DB 15 DUP(?)CO

10、DE_LIST DB 1,7,8,3,2(1)用一条 MOV 指令将 LNAME 的偏移地址放入AX。(2)用一条指令将 CODE_LIST 的头两个字节的内容放入SI。(3)用一条伪操作使 CODE_LENGTH的值等于 CODE_LIST 域的实际长度。23.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。24.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。25.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。26.下面的程序段有错吗?若有,请指出错误。CRAY PROC PUSH AX ADD AX,BX

11、 RET ENDP CRAY 27.写一段子程序 SKIPLINES,完成输出空行的功能。空出的行数在AX寄存器中。28.编写一条宏指令 CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。29.写出分配给下列中断类型号在中断向量表中的物理地址。(1)INT 12H(2)INT 8 30.用 CALL 指令来模拟实现 INT 21H 显示字符 T 的功能。31.写出指令将一个字节数据输出到端口25H。32.写出指令将一个字数据从端口1000H 输入。33.在 ADDR 单元中存放着数据Y,试编写一程序把Y中 1 的个数存入 COUNT 单元中。参考答案:本次作业是本

12、门课程本学期的第2 次作业,注释如下:一、单项选择题(只有一个选项正确,共12 道小题)1.若 PORT_VAL5,则执行指令 MOV BX,(PORT_VAL LT 5)AND 20)OR(PORT_VALE 5)AND 30)后 BX的内容是:()。(A)20(B)30(C)5(D)10 你选择的答案:A 正确 正确答案:A 解答参考:2.假设(AL)=10010010,MOV CL,4 SHL AL,CL 执行上述指令后 CF和 AL的内容是()。(A)AF=1,(AL)=00001001(B)AF=0,(AL)=00001001(C)AF=1,(AL)=00100000(D)AF=0,

13、(AL)=00100000 你选择的答案:C 正确 正确答案:C 解答参考:3.下面指令序列测试BH中的数是否为奇数,若为奇数则转移至K1处,横线处的指令应为()。TEST BH,01H K1 (A)JNE(B)JZ(C)JS(D)JC 你选择的答案:A 正确 正确答案:A 解答参考:4.已知标号 NEXT 与指令 MOV AX,TYPE NEXT 在同一个段内,则AX的值为()。(A)0(B)1(C)2(D)-1 你选择的答案:B 正确 正确答案:B 解答参考:5.DATA SEGMENT BUF DB 1,2,3,4,5 COUNT EQU DATA ENDS 在以上数据段中 COUNT

14、的值为()(A)3(B)5(C)4(D)6 你选择的答案:B 正确 正确答案:B 解答参考:6.下列是 8 位二进制数的补码,其中真值最大的是()。(A)10001000(B)11111111(C)00000000(D)00000001你选择的答案:D 正确 正确答案:D 解答参考:7.16 位有符号数的补码所表示的十进制数的范围是()。(A)-32767+32768(B)-32768+32767(C)-65535+65536(D)065535你选择的答案:B 正确 正确答案:B 解答参考:8.下面的 XCHG 指令中,语法正确的是()。(A)XCHG AL,DS(B)XCHG BL,BX(C

15、)XCHG AL,0FH(D)XCHG BUF1,BUF2你选择的答案:B 正确 正确答案:B 解答参考:9.LDS SI,ES:2000H 指令的全部功能是()。(A)把地址2000H 送 SI(B)把地址2000H 字单元的内容送 SI(C)把地址2000H 字单元内容送 SI,把 2002H 字单元内容送 DS(D)把地址2000H 字单元内容送 DS,把 2002H 字单元内容送 SI 你选择的答案:C 正确 正确答案:C 解答参考:10.数据定义如下:BUF1 DB 10 BUF2 DW 20 DUP(?)实现将 BUF1 单元的内容与 BUF2 开始的第三个字节单元内容相比较的指令

16、是()。(A)CMP BUF1,BYTE PTR BUF2 3(B)MOV AL,BUF1 CMP AL,BYTE PTR BUF2 2(C)MOV AL,BUF1CMP AL,BUF22(D)MOV AL,BUF1CMP AL BUF2 3你选择的答案:B 正确 正确答案:B 解答参考:11.某数据段如下:DATA SEGMENT ORG 20H X DB 12H Y DW 789AH DATA ENDS 则 Y 单元的偏移址是()。(A)0(B)20H(C)21H(D)12H 你选择的答案:C 正确 正确答案:C 解答参考:12.MOV AL,-1 NEG AL XOR AL,65 上述程

17、序段执行后,AL 中的内容是()。(A)40H(B)64H(C)01H(D)61H 你选择的答案:B 正确 正确答案:B 解答参考:(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。)二、主观题(共 21 道小题)13.在 0624H 单元内有一条二字节JMP SHORT OBJ 指令,如其中位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址OBJ 的值是多少?参考答案:(1)OBJ=0624H+02H+27H=064DH(2)OBJ=0624H+02H+6BH=0691H(3)OBJ=0624H+02H+0C6H=05ECH;

18、C6H 对应的负数为-3AH(向上转移,负位移量)14.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名 VAL 的偏移地址为 0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,0ABH(2)MOV AX,BX(3)MOV AX,100H(4)MOV AX,VAL(5)MOV AX,BX(6)MOV AX,ES:BX(7)MOV AX,BP(8)MOV AX,SI(9)MOV AX,BX+10(10)MOV AX,VALBX(11)MOV AX,BXS

19、I(12)MOV AX,VALBXSI参考答案:(1)立即方式;操作数在本条指令中(2)寄存器寻址方式;操作数为(BX)=0100H(3)直接寻址方式;PA=20100H(4)直接寻址方式;PA=20050H(5)BX 寄存器间接寻址方式;PA=20100H(6)附加段 BX 寄存器间接寻址方式;PA=21100H(7)BP 寄存器间接寻址方式;PA=15010H(8)SI 寄存器间接寻址方式;PA=200A0H(9)BX 寄存器相对寻址方式;PA=20110H(10)BX 寄存器相对寻址方式;PA=20150H(11)BX 和 SI 寄存器基址变址寻址方式;PA=201A0H(12)BX 和

20、 SI 寄存器相对基址变址寻址方式;PA=201F0H15.设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。请写出两条指令把字变量X 装入 AX 寄存器。参考答案:MOV BX,2000H MOV AX,ES:BX16.求出以下各十六进制数与十六进制数62A0H 之和,并根据结果设置标志位SF、ZF、CF 和 OF 的值。(1)1234H(2)4321H(3)CFA0H(4)9D60H参考答案:(1)和为 74D4H;SF=0,ZF=0,CF=0,OF=0(2)和为 A5C1H;SF=1,ZF=0,CF=0,OF=1(3)和为 3240H;SF=0,ZF=0,CF

21、=1,OF=0(4)和为 0000H;SF=0,ZF=1,CF=1,OF=017.指出下列指令的错误:(1)MOV AH,BX;(2)MOV BX,SI;(3)MOV AX,SIDI;(4)MOV MYDAT BXSI,ES:AX;(5)MOV BYTE PTR BX,1000;(6)MOV BX,OFFSET MYDAT SI;(7)MOV CS,AX;(8)MOV ECX,AX;参考答案:(1)MOV AH,BX;寄存器类型不匹配(2)MOV BX,SI;不能都是存储器操作数(3)MOV AX,SIDI;SI 和DI 不能一起使用(4)MOV MYDAT BXSI,ES:AX;AX寄存器不

22、能使用段超越(5)MOV BYTE PTR BX,1000;1000 超过了一个字节的范围(6)MOV BX,OFFSET MYDAT SI;MYDAT SI已经是偏移地址,不能再使用 OFFSET(7)MOV CS,AX;CS不能用作目的寄存器(8)MOV ECX,AX;两个操作数的数据类型不同18.下面哪些指令是非法的?(假设 OP1,OP2是已经用 DB定义的变量)(1)CMP 15,BX;(2)CMP OP1,25(3)CMP OP1,OP2;(4)CMP AX,OP1;参考答案:(1)CMP 15,BX;错,立即数不能作为目的操作数(2)CMP OP1,25(3)CMP OP1,OP

23、2;错,不能都是存储器操作数(4)CMP AX,OP1;错,类型不匹配,应为CMP ax,word ptr op1 19.假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么?(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-

24、WORD_OP2+100(10)MOV WORD_OP1,WORD_OP1-WORD_OP2 参考答案:假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么?(1)MOV BP,AL;错,寄存器类型不匹配(2)MOV WORD_OP BX+4*3DI,SP(3)MOV WORD_OP1,WORD_OP2;错,不能都是存储器操作数(4)MOV AX,WORD_OP1DX;错,DX不能用于存储器寻址(5)MOV SAVE_WORD,DS(6)MOV SP,SS:DATA_WORD BXSI(7)MOV BXSI,2;错,BXSI未指出数据类型(8)MOV

25、AX,WORD_OP1+WORD_OP2(9)MOV AX,WORD_OP1-WORD_OP2+100(10)MOV WORD_OP1,WORD_OP1-WORD_OP2 20.假设 VAR1和 VAR2为字变量,LAB为标号,试指出下列指令的错误之处:(1)ADD VAR1,VAR2;(2)SUB AL,VAR1;(3)JMP LAB SI;(4)JNZ VAR1;(5)JMP NEAR LAB;参考答案:假设 VAR1和 VAR2为字变量,LAB为标号,试指出下列指令的错误之处:(1)ADD VAR1,VAR2;不能都是存储器操作数(2)SUB AL,VAR1;数据类型不匹配(3)JMP

26、LAB SI;LAB是标号而不是变量名,后面不能加SI(4)JNZ VAR1;VAR1 是变量而不是标号(5)JMP NEAR LAB;应使用 NEAR PTR 21.有符号定义语句如下:BUFF DB 1,2,3,123EBUFF DB 0 L EQU EBUFF-BUFF 问 L 的值是多少?参考答案:L6。22.假设程序中的数据定义如下:LNAME 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

27、 的头两个字节的内容放入SI。(3)用一条伪操作使 CODE_LENGTH的值等于 CODE_LIST 域的实际长度。参考答案:(1)MOV AX,OFFSET LNAME(2)MOV SI,WORD PTR CODE_LIST(3)CODE_LENGTH EQU;此语句必须放在CODE_LIST 语句之后23.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。参考答案:程序段如下:BEGIN:MOV AH,1;从键盘输入一个字符的DOS 调用INT 21H CMP AL,a;输入字符 z吗?JA STOP SUB AL,20H;转换为大写字母,用AND AL,1101 11

28、11B 也可MOV DL,AL;显示一个字符的 DOS 调用MOV AH,2 INT 21H JMP BEGIN STOP:RET 24.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。参考答案:程序段如下:BEGIN:MOV AH,1;从键盘输入一个字符的DOS 调用INT 21H CMP AL,a;输入字符 z吗?JA STOP SUB AL,20H;转换为大写字母,用AND AL,1101 1111B 也可MOV DL,AL;显示一个字符的 DOS 调用MOV AH,2 INT 21H JMP BEGIN STOP:RET 25.编写程序,从键盘接收一个小写字母,然后

29、找出它的前导字符和后续字符,再按顺序显示这三个字符。参考答案:程序段如下:BEGIN:MOV AH,1;从键盘输入一个字符的DOS 调用INT 21H CMP AL,a;输入字符 z吗?JA STOP DEC AL;得到前导字符MOV DL,AL;准备显示三个字符MOV CX,3 DISPLAY:MOV AH,2;显示一个字符的DOS 调用INT 21H INC DL LOOP DISPLAY STOP:RET 26.下面的程序段有错吗?若有,请指出错误。CRAY PROC PUSH AX ADD AX,BX RET ENDP CRAY 参考答案:程序有错。改正如下:CRAY PROC ADD

30、 AX,BX RET CRAY ENDP;CRAY 是过程名,应放在ENDP 的前面27.写一段子程序 SKIPLINES,完成输出空行的功能。空出的行数在AX寄存器中。参考答案:程序如下:CSEG SEGMENT SKIPLINES PROC FAR ASSUME CS:CSEG BEGIN:PUSH CX PUSH DX MOV CX,AX DISP:MOV DL,0DH;显示回车换行,即输出空行MOV AH,2;显示一个字符的DOS 调用INT 21H MOV DL,0AH MOV AH,2;显示一个字符的DOS 调用INT 21H LOOP DISP POP DX POP CX RET

31、 SKIPLINES ENDP END 28.编写一条宏指令 CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。参考答案:宏定义如下:CLRB MACRO N,CFIL MOV CX,N CLD MOV AL,;取空格符的 ASCII 码LEA DI,CFIL REP STOSB ENDM 29.写出分配给下列中断类型号在中断向量表中的物理地址。(1)INT 12H(2)INT 8 参考答案:(1)中断类型号 12H在中断向量表中的物理地址为00048H、00049H、0004AH、0004BH;(2)中断类型号 8 在中断向量表中的物理地址为00020H、000

32、21H、00022H、00023H。30.用 CALL 指令来模拟实现 INT 21H 显示字符 T 的功能。参考答案:MOV AH,2 MOV DL,TPUSH DS PUSHF;因中断服务程序的返回指令是IRET,而不是 RET MOV BX,0 MOV DS,BX CALL DWORD PTR21H*4;用 CALL指令调用 21H的中断服务程序POP DS 31.写出指令将一个字节数据输出到端口25H。参考答案:指令为:OUT 25H,AL32.写出指令将一个字数据从端口1000H 输入。参考答案:指令为:MOV DX,1000H IN AX,DX 33.在 ADDR 单元中存放着数据

33、Y,试编写一程序把Y中 1 的个数存入 COUNT 单元中。参考答案:DATA SEGMENT ADDR DW Y COUNT DW?DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START:PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV CX,0 MOV AX,ADDR REPEAT:TEST AX,0FFFFH JZ EXIT JNS SHIFT INC CX SHIFT:SHL AX,1 JMP RETEAT EXIT:MOV COUNT,CX RET MAIN ENDP CODE ENDS END START

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁