微机原理与接口技术试题库(含答案)汇总

(2)DH内容所在存储器的偏移地址为 ; A)1FFFH B)1FFEH C)1FFDH D)1FFCH

(3)DL内容所在存储器的偏移地址为 ; A)1FFFH B)1FFEH C)2000H D)1FFCH (4)(AX)= ; A)0H B)78H C)0F0H D)56H (5)(DI)= 。 A)1234H B)5678H C)2000H D)00F0H (6)(DX)= ; A)5678H B)0ACF0H C)2B3CH D)0ABF0H (7)标志位ZF= 。

A)0 B)1 C)不定 D)无值

2、下面是多字节加法程序,第一个数和是8A0BH,第二个数是D705H。 DATA SEGMENT FIRST DB (1), (2),0H SECOND DB (3), (4) DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX, (5) MOV SI,0 (6) NEXT: MOV AL,SECOND[SI] ADC FIRST[SI],AL INC SI LOOP NEXT MOV AL,0 ADC AL, (7) MOV FIRST[SI],AL MOV AH,4CH INT 21H CODE ENDS END START

请选择正确的答案填入空格中: (1)A)8AH B)0BH C)D7H D)05H (2)A)8AH B)0BH

36

C)D7H D)05H (3)A)8AH B)0BH C)D7H D)05H (4)A)8AH B)0BH C)D7H D)05H (5)A)3 B)2 C)1 D)4 (6)A)CLC B)CLD C)STC D)CLI (7)A)1 B)-1 C)0 D)0FFH 四、完成下列练习 1、 设(DS)=0300H,(CS)=0200H,(IP)=0100H,(BX)=1000H,DISPLACE=2000H,(4000H)=5000H,(6000H)=8000H 确定无条件转换指令的段内转移地址

(1) JMP BX (2) JMP [BX]

(3) JMP DISPLACE[BX]

2、 设AX和BX寄存器中是有符号数,CX和DX寄存器中是无符号数,写出下列条件转移指令。

(1) CX值高于或等于DX值,则转移HIEQU (2) AX值大于BX值,则转移GREAT (3) CX值为0,则转移ZERO

(4) AX值小于或等于BX值,则转移SMAEQU (5) CX值低于或等于DX值,则转移LOWEQU (6) AX为负值,则转移NEGAT (7) AX为偶数,则转移IMAGE

3、 写出下列串操作指令所替代的指令序列。 (1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB

五、是非判断题

程序在数据段中的定义如下: DATA SEGMENT NAMES DB ‘ABCD’ NAMET DW 20 DATA ENDS

请判断下列指令是否正确?正确的填‘A’,错误的填‘B’。

(1) MOV BX,OFFSET NAMES ( ) (2) MOV AL,[BX+2] ( ) ( 3) MOV AX,NAMES ( )

(4) MOV AX,WORD PTR NAMES+1 ( )

37

(5) MOV AL,NAMET ( )

(6) MOV AL,BYTE PTR NAMET ( ) (7) MOV AX,DATA ( ) (8) MOV DS,AX ( )

(9) MOV AX,SEG NAMES ( ) (10) MOV BX,DATA ( ) 六、请阅读下列程序,分析其功能或结果 1、 MOV AH,00 INT 16H

MOV AH,0AH MOV CX,00 MOV BH,00 INT 10H

2、 MOV AH,00 MOV AL,66 MOV DX,00 INT 17H

MOV AH,00 MOV AL,0DH INT 17H

3、 MOV AH,07 MOV AL,00 MOV BL,70H MOV CH,02 MOV CL,05 MOV DH,22 MOV DL,38 INT 10H

4、MESS DB ‘PRESS ANY KEY’,0DH,0AH,‘$’ MOV AH,09 MOV DX,SEG MESS MOV DS,DX MOV DX,OFFSET MESS INT 21H 5、MOV AH,2 MOV DL,1 INT 21H

七、编写程序

1. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

2. 编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则

显示“MATCH”,若不同则显示“NO MATCH”。

3. 试编写程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息: (1)如果3个数都不相等则显示0; (2)如果3个数中有2个数相等则显示2;

38

(3)如果3个数都相等则显示3。

4. 已知整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中; (2)若两个数均为奇数,则两数分别加1,并存回原变量; (3)若两个数均为偶数,则两变量不变。 5. 把0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。

6. 试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过程结束。两个状态寄存器的端口地址分别是0024和0036,与其相应的数据输入寄存器的端口则为0026和0038,输入字符分别存入首地址为BUFF1和BUFF2的存储区中。

7.编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为; 输入数字: 0,1,2,3,4,5,6,7,8,9 密码数字: 7,5,9,1,3,6,8,0,2,4 答案

一、回答下列问题 1、(1)C9H (2)1FH (3) 0FH 2、答案: DAT_SG SEGEMNT HIGH_DAT DB 95 DAT_SG ENDS ;

STK_SG SEGMENT DW 64 DUP(?) STK_SG ENDS ;

COD_SG SEGMENT MAIN PROC FAR ASSUME CS: COD_SG, DS: DAT_SG, SS: STK_SG START: MOV AX, DAT-SG MOV DS, AX MOV AH, HIGH_DAT MOV BH, AH

MOV DL, AH MOV AH, 4CH INT 21H

MAIN ENDP COD_SG ENDS

39

END START 3、答案:

DATA SEGMENT

TRING DB ‘Personal computer’ VALD DB 12,99 VALH DB 32H,0FAH VALZ DB 10 DUP(‘0’) VALW DW 20 DUP(?) 4、答案:

(1) 1,表示BUFA所占的内存空间

(2) 20,表示STA中DUP前重复的次数。

5、非法标号: (1)因为‘.’只允许是标号的第一个字符

(2)第一个字符不能为数字 (3)不允许出现‘-’

(4)不能是保留字,如助记符 (5)不能有空格

6、答案:

(1) 设置了4个字节 (2) 设置了2个字节 7、答案:

MOV BX,TABLE_ADDR ; 执行后(BX)=1234H LEA BX,TABLE_ADDR ; 执行后(BX)=OFFSET TABLE_ADDR

8、 答案:

(1) 00048h (2) 00020h

9、答案:

(1) 源和目的不能同为内存变量 (2) 两个类型不匹配

(3) LAB为标号不为符号常量

(4) JNZ可跳转到标号,不能跳转到变量。

二、填空题

1、1256H 、3280H、2450H 2、1030H,106CH,10B8H

3、立即数寻址方式、直接寻址方式

4、=可以二次赋值,EQU不能直接下次赋值,如果要二次赋值,必须使用PURGE解除后才行。 5、前一个AND是一个命令,后一个AND是一个运算符。 6、相等、零,不相等,不为零

7、段内直接,段内间接,段间直接,段间间接 8、在同一个段内,不在同一个段内。 9、SI,DS,DI,ES

10、ENDP ,必须与过程名,ENDS,必须与段名

三、选择题 1、(1)、D (2)、A (3)、B (4)、C (5)、A (6)、B (7)、A 2、(1)、B (2)、A (3)、D (4)、C (5)、B (6)、A (7)、C

40

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4