微机原理课件模拟试题一_第1页
微机原理课件模拟试题一_第2页
微机原理课件模拟试题一_第3页
微机原理课件模拟试题一_第4页
微机原理课件模拟试题一_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一套=试题说明 :=请编制程序 PROG1.ASM,其功能是:内存中连续存放着二个无符号字节序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)+B(k)。 C(k)以字的形式按 C(0),.,C(9)的顺序连续存放。例如:序列 A(k)为 30H,31H,61H,FFH,.;序列 B(k)为 00H,01H,F1H,0AH,.。则结果 C(k)为 0030H,0032H,0152H,0109H,.。部分程序已给出, 其中原始数据由过程LOAD 从文件INPUT1.DAT中读入SOURCE 开始的内存单元中,运算结果要求从 RESULT 开始存放,由过程S

2、AVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件, 最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS

3、 DATA SEGMENTSOURCE DB N*2 DUP(?) ; 顺序存放 A0,.,A9,B0,.,B9RESUW N DUP(0) ; 顺序存放 C0,.,C9NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AXPUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节

4、数CALL LOAD ; 从 INPUT1.DAT中; * BEGIN * MOV DI,MOV BX,数据PRO: MOV AH,0MOV AL,SOURCEBX+10 ; 序列 Bk 中的一个字节; Ck=Bk+Ak JNC JUMP ; 无进位转 JUMP; 有进位,进位入AHJUMP: MOV DI,AX ; Ck=Bk+Ak 的字的形式存入 RESULT INC BXDEC CX JNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N*2 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETST

5、ART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 001FF 80 7F 00 7F 80 FF 80 81 00F 80 00 81 00 00 81 FE FF #E3 $output1.hex 00101FE80FE00#EE700EFE80FE00FF7F第二套=试题说明 :=请编制程序 PROG1.ASM, 其功能是: 内存中连续存放着二个有符号字节序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)-B(k)。 C(k)以有符号字的形式按 C(0),.,C(9)的顺序连续存放。例如:序列 A(k)为

6、 30H,80H(-128D),7FH(127D),.;序列 B(k)为 00H,7FH(127D),80H(-128D),.。则结果 C(k)为 0030H,FF01H,00FFH,.。部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中,运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的

7、功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?) ; 顺序存放 A0,.,A9,B0,.,B9RESUW N DUP(0) ; 顺序存放 C0,.,C9NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,

8、0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AXMOV AX,DATAMOV DS,AXLEA DX,SOURCE ; 数据区起始地址 LEA SI,NAME0 ; 原始数据文件名 MOV CX,N*2 ; 字节数CALL LOAD ; 从 INPUT1.DAT中; * BEGIN *数据LEA DI,RESULT ; 结果从 RESULT 开始存放MOV CX,N MOV BX,0 MOV AH,0PRO: MOV AL,SOURCEBX ; 序列 Ak 中的

9、一个字节MOV DH,AL; Ck=Ak-Bk JNO STAY ; 无溢出转STAYADD DH,0 ; 有溢出DEC1 ; Ak 为正数(为一个正数减去一个负; 数,结果为负数的溢出情况)转 DEC1MOV AH,; Ak 为负数(为一个负数减去一个正; 数,结果为正数的溢出情况)将结果; 变为有符号字的形式(为负)JMP DEC1: MOV AH,00H ; 将结果变为有符号字的形式(为正)JMP STAY: ; AL 中数的符号扩展到 AH,正的字节; 变成正的字,负的字节变成负的字JUMP1: MOV DI,AX ADD DI,2INC BX DEC CX JNZ PRO; * EN

10、D *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N*2 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 00180 C0 81 00 7F 40 3F 7F C0 81 7F 40 7F 00 7F 3F 40 80 81 9C #E3 $output1.hex 001FE007F00FD00#EEFF000000FFC0FF1A00A1第三套=试题说明 :=请编制程序 PROG1.ASM, 其功能是: 内存中连续存放着二

11、个无符号字节序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)B(k)。 C(k)以字的形式按 C(0),.,C(9) 的顺序连续存放。例如:序列 A(k)为 FFH,80H,7FH,00H,.;序列 B(k)为 FFH,80H,01H,02H,.。则结果 C(k)为 FE01H,4000H,007FH,0000H,.。部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中,运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间

12、已给出的源程序使其完整 (空白已用横线标出, 每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?)RESUW N

13、DUP(0)NAME0 DB INPUT1.DAT,0NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节数CALL LOAD ; 从 INPUT1.DAT中; * BEGIN *,OFFSET RESULT MOV BX,0数据PRO: ,SOURCEBX+NM

14、OV DI,AXADD DI,2 INC BXJNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N*2 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 001FF 80 7F 00 01 80 FF 80 01 00 FF 80 01 02 00 #E3 $output1.hex 001F 03FFE01F80F7F80FE017FFE003C#E第四套=试题说明 :=请编制程序 PROG1.ASM

15、, 其功能是: 内存中连续存放着二个有符号字节序列 A(k)和 B(k)(k=0,.,9;下同),求序列 C(k),C(k)=A(k)B(k)。运算结果按序以字的形式连续存放(低字节为商,高字节为余数)。例如:序列 A(k)为 FFH(-1D), 81H(-127D),C0H(-64D),80H(-128D),.;序列 B(k)为 81H(-127D),40H(64D),81H(-127D),01H(1D),.。则结果 C(k)为 FF00H(00H(0D)为商、FFH(-1D)为余数),C1FFH,C000H,0080H,.。部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.

16、DAT中读入SOURCE 开始的内存单元中,运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出, 每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQ

17、U 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?)RESUW N DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N

18、*2 ; 字节数CALL LOAD ; 从INPUT1.DAT中; * BEGIN *数据MOV DI, MOV CX,NPRO: MOV AL,; AL 中数的符号扩展到 AH,正的字节; 变成正的字,负的字节变成负的字SOURCEBX+NMOV,AXADD DI,2 INC BX DEC CX JNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,2*N ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.da

19、t 001FF 81 C0 80 00 80 40 7F 20 7F 81 40 81 01 7F 80 C0 81 01 7F #E3 $output1.hex 001FF00003EFF3F7#EFFEFF00FF00FFDFEFF1F第五套=试题说明 :=请编制程序 PROG1.ASM, 其功能是: 内存中连续存放着十六个12 位二进制数 DB(11)DB(10).DB(0), 每个二进制数均用两个字节表示,其存放格式均为DB(11)DB(10)DB(9)DB(8)DB(7)DB(6)DB(5)DB(4) DB(3)DB(2)DB(1)DB(0) 0 0 0 0低地址字节高地址字节请按序

20、将每个 12 位二进制数转换成以下格式DB(7)DB(6)DB(5)DB(4)DB(3)DB(2)DB(1)DB(0) 0 0 0 0 DB(11)DB(10)DB(9)DB(8) 低地址字节高地址字节转换结果按原序存放在内存中。例如:内存中有 12H,30H(12 位二进制数 000100100011B(123H)按 12H、 30H 的形式顺序存放);04H,50H(12 位二进制数 000001000101B(45H)按 04H、50H 的形式顺序存放); 61H,00H(12 位二进制数011000010000B(610H)按 61H、00H 的形式顺序存放;结果为 0123H,004

21、5H,0610H,.部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中。运算结果要求从 RESULT 开始存放,由过程SAVE 保存到OUTPUT1.DAT 文件中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处

22、,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 16STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N*2 DUP(?)RESUW N DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURC

23、E ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节数CALL LOAD ; 从 INPUT1.DAT中; * BEGIN * MOV BX,0MOV DI,OFFSET RESULT MOV CH,NMOV CL,PRO: MOV AX, MOV DX,AX数据SHR DL, ; 12 位无符号二进制数高八位右移 SHR AH, ; 12 位无符号二进制数低四位右移 SHL AL, ; 12 位无符号二进制数高八位OR ; 新格式 12 位无符号二进制数低八位MOV AL,AHMOV AH,DL ; 新格式 12 位无符号二进制数高四位MOV BY

24、TE PTR DI, MOV BYTE PTR DI+1, ADD DI,2ADD BX,2 DEC CH JNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N*2 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 0010 FF 00 F0 F0 0F F0 F0 00 0F 00 00 F0 00 00 00 50 05 00 50 00 0A A0 A0 A0 AA 00 AA A055 50

25、#E3 $output1.hex 00100F00FF0F0F000#EFF00F0FAA555F55FF555F5AAFA08第六套=试题说明 :=请编制程序 PROG1.ASM, 其功能是:内存中连续存放着十六个 10位无符号二进制数DB(9)DB(8).DB(0),其存放格式均为DB(9) DB(8) DB(7) DB(6) DB(5) DB(4) DB(3) DB(2) DB(1) DB(0) 0 0 0 0 0 0 低地址字节 高地址字节请判别这十六个 10 位二进制数是否小于等于 200H;若小于等于 200H,则相应地在内存中存入 01H;否则,存入 00H。最后存放这十六个 1

26、0 位二进制数中小于等于 200H 的 10 位无符号二进制数的个数 n(n 用一个字节表示)。例如:内存中有 48H,C0H(10 位二进制数 0100100011B(123H)按 48H、 C0H 的形式顺序存放);91H,40H(10 位二进制数 1001000101B(245H)按91H、40H 的形式顺序存放);80H,00H(10 位二进制数 1000000000B (200H)按 80H、00H 的形式顺序存放);.结果为 01H,00H,01H.(共十六个字节),后跟 n部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中

27、。运算结果要求从 RESULT 开始存放,由过程SAVE 保存到OUTPUT1.DAT 文件中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 16STAC SEGMENT STACK

28、DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DW N DUP(?)RESUB N+1 DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节数CALL LOAD ; 从 I

29、NPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESULT MOV CH,NMOV CL,MOV BX,0 MOV DX,0100H数据PRO: MOV AH,BYTE PTR SOURCEBX ; 10 位无符号二进制数高八位MOV AL,; 10 位无符号二进制数低二位CMP AX, JNBE C_0 MOV DI, INC INC DI JMP JUMPC_0: MOV DI,DLJUMP: ADD BL,2DEC CHJNZ PRO MOV DI,CL; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV

30、CX,N+1 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 001FF C0 80 00 80 40 7F C0 FF 00 FA 40 FA 80 AA 40 CD 40 11 C0 00 00 31 80 31 40 66 40 66 C033 40 #E3 $output1.hex 001EEFFEFEFEFEFEFEFEF612#E第七套=试题说明 :=请编制程序 PROG1.ASM, 其功能是: 内存中连续存放着 10 个二进制字节,每个二进制字节的序号依次定义为 0

31、,1,.9。统计每个字节中 1 的个数 N(0), N(1),., N(9)(均用一个字节表示),然后按序将 N(0)至 N(9)存入内存中,最后再用一个字节表示这 10 个字节中为 1 的位的总数 n(n= N(0)+ N(1)+.+ N(9))。例如:内存中有 00H,01H,03H,.结果为 00H,01H,02H,.,最后为 n部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中。运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整

32、 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N DUP(?)RESUB N+1 DUP(0)NAME0

33、DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数CALL LOAD ; 从 INPUT1.DAT中; * BEGIN * MOV CL,NMOV DI,OFFSET RESULT MOV BX,0MOV DH,0 PRO: MOV

34、 DL,0MOV AL,SOURCEBX MOV CH,COUNT: JNC INC DLJUMP: DEC CH数据COUNT MOV DI, ADD DH,DL INC DIINC BX DEC CL JNZ PROMOV ; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N+1 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 00100 01 03 07 0F A7 F5 F7 #E3 $output1.h

35、ex 0015EFDFCFBFAF9F8F7FBD750#E第八套=试题说明 :=请编制程序 PROG1.ASM, 其功能是: 内存中连续存放着 10 个用ASCII 码表示的十进制个位数,将它们转换成相应的二进制字节N(0), N(1), ., N(9),然后按序将 N(0)至 N(9)存入内存中,最后存放它们的和 n(n= N(0)+ N(1)+.+ N(9))。n 用压缩型(组合型)BCD 码表示。例如:内存中有 30H(0),39H(9),31H(1), .结果为 00H,09H,01H,.,(后跟 n)部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SO

36、URCE 开始的内存单元中。运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC

37、SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N DUP(?)RESUB N+1 DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE, DS:DATA, SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数C

38、ALL LOAD ; 从 INPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESULT MOV BX,0MOV CX,N MOV DL,PRO: MOV AL,SOURCEBXAL,30H MOV DI,AL数据ADD AL,DLMOV DL,ALINC BXJNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址 LEA SI,NAME1 ; 结果文件名 MOV CX,N+1 ; 结果字数CALL SAVE ; 保存结果到文件RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 00130 3

39、9 31 38 32 37 33 36 34 35 #E3 $output1.hex 001 6FEF7FDF8FCF9FBFABA72#E第九套=试题说明 :=请编制程序 PROG1.ASM, 其功能是: 内存中连续存放着 20 个 ASCII 字符, 如果是小写字母 a 至 z 之间的字符,请把它们转换成相应的大写字母的ASCII 字符(否则不作转换)并统计原 20 个 ASCII字符中字符“z的个数。转换结果(包括不作转换的 az 之间的原 ASCII 字符)按序存入内存中,之后存放原 20 个ASCII 字符中为字符“z的ASCII 字符的个数(用一个字节表示)。例如:内存中有 30H

40、(0),31H(1),61H(a),41H(A),7AH(z),.结果为 30H,31H,41H,41H,5AH,.,后跟用一个字节表示的原 20个 ASCII 字符中为字符“z的个数部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中。运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OUTPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能

41、。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 20STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENTSOURCE DB N DUP(?)RESUB N+1 DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DA

42、TA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N ; 字节数CALL LOAD ; 从INPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESULT MOV BX,0MOV DL,0MOV CX,N数据PRO: MOV AL,SOURCEBX CMP AL,61HKEEP ; =a JNBE KEEP ; z CMP AL,79H ; =y JBE INC DLNINC: S

43、UB AL, MOV DI,ALINC DI JMP KEEP: MOV DI,ALJUMP: INC BX DEC CXJNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N+1 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 00130 60 31 61 32 62 33 63 34 64 35 65 41 68 7B 7A 5A 5B 40 5F #E3 $output1.hex 001 CF9

44、FCEBECDBDCCBCCBBBCABABEB784A5A5A4BFA0FE91#E第十套=试题说明 :=请编制程序 PROG1.ASM,其功能是: 内存中连续存放着 10 个字。分别对每个字的字节和低位字节进行逻辑与运算及逻辑或运算。 运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,例如:字节存入逻辑或运算的结果)。内存中有 AA55H,55AAH,结果为 FF00H,FF00H,AH,.AH,.部分程序已给出,其中原始数据由过程LOAD 从文件 INPUT1.DAT中读入SOURCE 开始的内存单元中。运算结果要求从 RESULT 开始存放,由过程SAVE 保存到文件 OU

45、TPUT1.DAT 中。填空 BEGIN 和 END 之间已给出的源程序使其完整 (空白已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可), 或删除 BEGIN 和 END 之间原有的代码并自行编程来完成要求的功能。对程序必须进行汇编, 并与 IO.OBJ产生 PROG1.EXE 执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。=程序 :=EXTRN LOAD:FAR,SAVE:FAR N EQU 10STAC SEGMENT STACK DB 128 DUP (?)STAC ENDS DATA SEGMENT

46、SOURCE DW N DUP(?)RESUW N DUP(0)NAME0 DB INPUT1.DAT,0 NAME1 DB OUTPUT1.DAT,0 DATA ENDSCODE SEGMENTAME CS:CODE,DS:DATA,SS:STACSTART PROC FAR PUSH DSXOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXLEA DX,SOURCE ; 数据区起始地址LEA SI,NAME0 ; 原始数据文件名MOV CX,N*2 ; 字节数CALL LOAD ; 从INPUT1.DAT中; * BEGIN *MOV DI,OFFSET RESU

47、LT MOV CX,NMOV BX,00PRO: MOV AX, MOV DX,AXAND _,DHAH,AL MOV ,DL ADD BX,2数据ADD DI,2JNZ PRO; * END *LEA DX,RESULT ; 结果数据区首址LEA SI,NAME1 ; 结果文件名MOV CX,N*2 ; 结果字节数 CALL SAVE ; 保存结果到文件 RETSTART ENDP CODE ENDS END START=所需数据 :=2 input1.dat 00155 AA AA 55 AAF 55 FF 00 00 FF 00 00 #E3 $output1.hex 001F 70 0

48、7 80 80FF00FF005500AA00FF00FF00#EF0000FF887F7F6E微机原理及应用习题集(二)第一章微型计算机概论一、单项选择题1X 的 8 位补码是 10110100,则 X 的 16 位补码是。A)0000000010110100C)1111111110110100B)1000000010110100C)0111111110110100二、多项选择题18 位数 11011011B 可表示。A)无符号数 219D) -36 的反码三、填空题B)-37 的补码E)91 的原码C)-36 的补码F)-91 的原码1计算机的硬件由、和等部分组成。十进制 68=B=Q=H

49、。 X补=78H,则-X 补=H。234通用编码字符集UCS的总体结构由、和 容量巨大。四、用补码求X+Y补与X-Y补,并判断运算结果是否溢出1已知X原=10101100,Y补=110001102已知X反=01110110,Y补=00100110五、简答题编码空间,12微型机的硬件和?系统应用第二章 80X86 微处理器的结构一、判断题1器。CPU中集成了运算器和控)制(2 事。单 元 的 地址和单 元 的)能直(内容是 一回(EU3在执行指令期间,接)器。48086CPU 从内存中一个字(16 位)必须用两个总线周期。(状 态)组5 8086CPU成。二、单项选择题的 个 总 线 周 期 一

50、 般由4个()1用可实现数据总线的双向传输。A)锁存器B)三态逻辑开关C)暂存器D)寄存器2对内存单元进行写操作后,该单元的内容。A)变反B)不变C)随机D)被修改3含有立即数的指令中,该立即数被存放在。 A)累加器中元中B)指令操作码后的内存单C)指令操作码前的内存单元中C)由该立即数所指定的内存单元中48086CPU 的 40 根引脚中,有个是分时复用的。A)21B)1C)2D)2458086CPU 工作在最大模式还是最小模式取决于信号。A)M/B) NMIC)MN/D)ALE68086CPU 中 EU 和 BIU 的并行操作是级的并行。A)操作B)运算C) 指令D)处理器78086CPU

51、 向 52H 单元写入一个字,写入过程中和 A0 的逻辑电平是。A)0 和 0B)0 和 1C)1 和 0D)1 和 188086CPU 用信号的下降沿在 T1 结束时将地址信息锁存在地址锁存器中。A)M/B)C)ALED)READY三、多项选择题1微型计算机的基本结构包括。A)运算器F)外设及接口B)寄存器C)器G)总线D)CPUE)控制器2指令操作数可来自于。A)器B)时序电路F)I/O 接口C)寄存器D)立即数E)控制器38086 标志寄存器中控制为。A) CFB)IFC)DFD)SFE)TFF)OFG)ZF4若 AL=00H,BL=0FEH,执行 ADDAL,BL 后,为 0 的标志位

52、有。A ) CFB ) PF F)OFH)DFC ) AFD ) SFE )TFG)ZFI)IF58086CPU 复位后,内容为 0 的寄存器有。A ) IPB ) FLC ) CSD ) ESE )DS6当 CPU 读F)SS器时,为 0 电平的引脚有。A ) ALEB ) M/C ) DEND ) DT/E )F)7)8086 与 8088 相比,具有。A)相同的同的指令队列寄存器B)相同的指令系统C)相D)相同宽度的数据总线址方式四、填空题E)相同宽度的地址总线F)相同的寻1和集成在一块上,被称作 CPU。总线按其功能可分、和三种不同类型的总线。器操作有和两种。4CPU器进行读写操作时,

53、通常在状态去检测 READY ,一旦检测到 READY 无效,就在其后一个周期。58086/8088CPU 中的指令队列的长度分别为和字节。6当 8086CPU 的 MN / MX 引脚接电平,CPU 处于最大模式,这时对器和外设端口的读写控制信号由 五、简答题18086/8088 CPU 中有几个段寄存器?其功能是什么?发出。2逻辑地址、物理地址、物理地址是如何求得的?3何谓 8086/8088 CPU 最大模式和最小模式?其关键区别是什么?在最小模式时 CPU在最小模式时,CPU内器,哪些信号有效?I/O 接口,哪些信号有效?第三章 80X86 的指令系统一、 判断题1 MOV+(BP)A

54、X,BP的 源操作 数 物理地 址 为16d ( DS)()的2OUTDX,AL指令输出是16(寄位操)器作数。3不能用立即数给段存赋值。 (4 位。 5字。)所有传送指令都 不影响PSW寄(作存)器的 标志堆栈指令的操数均为(6 段值。)内 转移指令执 行结果要改 变(IP)、 CS的7REPE/REPZ 是相等/为零时重复操作,其退出条件是:(CX)=0 或 ZF=0。二、单项选择题1寄存器间接寻址方式中,操作数在中。()A)通用寄存器B)堆栈C)单元D)段寄存器2寻址方式的跨段前缀不可省略。A)DS:BPB)DS:SIC)DS:DID)SS:BPAX 后,=12HD)2000FH3假设(

55、SS)=2000H,(SP)=0012H,(AX)=1234H,执行 PUSHA)20014B)20011HC)20010H4若要检查 BX 寄存器中的 D12 位是否为 1,应该用指令。A)ORBX,1000HB)TESTBX,1000HJNZ BX,1000HJNZJNZNOYESC) XORBX,1000HD)ANDJZYESYES5用 BP 作基址变址寻址时,操作数所在的段是当前。A)数据段B)代码段C)堆栈段D)附加段6执行下列指令后:MOV MOV ROL DEC MOV MULHLTAX,1234H CL,4 AX,CL AXCX,4CX(AX)=A)8D00HB)9260HC)

56、8CAOHD)0123H7)下列程序:NEXT:MOVAL,SIMOV INC INC LOOP可用指令来完成该功能。ES:DI,AL SIDINEXTA) REPMOVSBLODSBB) REPSTOSBC) REPESCASBD)REP8)设(AL)=-68,(BL)=86,执行 SUBAL,BL 指令后,正确的结果是。A)CF=1三、多项选择题B)SF=1C)OF=1D)ZF=11下列指令中源操作数使用寄存器寻址方式的有。A)MOVBX,BUFSIB)ADDSI+50,BXC)SUBAX,2D ) CMPCXAX , DISPDIE ) MULVARBXF )PUSH2将累加器 AX 的

57、内容清零的正确指令是。A)CMPAX,AXAX,AXB)SUBAX,AXC)ANDAX,0D)XOR3正确将字变量 WORD VARR 偏移地址送寄存器 AX 的指令是。A ) MOVAX , WORD VARRB ) LESAX , WORDVARRC ) LEAAX , WORD VARRD ) MOVAX , OFFSETWORDVARR4调用 CALL 指令可有。A)段内直接D)段间直接B)段内间接E)段间间接C)短距离(SHORT)5将 AL 中带符号数乘 10 送 AL,正确的程序是。A ) ADDAL , ALB ) ADDAL ,ALADDADDAL,ALALMOVBL,AL,

58、ALADDAL,ALADDAL,ALADDAL,ALADDC)MOVAL,ALCL,4ADDD)SALAL,BLAL,1MOV BL,ALSAL,AL,CLMOV SAL SALADDBL,AL AL,1 AL,1AL,BLADDADDAL,BLAL,BL6在下列指令中,隐含使用 AL 寄存器的指令有。A ) SCASBF)MULB ) XLATBHC ) MOVSBD ) DAAE )NOP四、填空题1假设(DS)=3000H,(BX)=0808H,(30808H)=012AAH,(3080A)=0BBCCH,当执行指令“LESDI,BX”后,(DI)=,(ES)=。2假设(BX)= 044

59、9H,(BP)= 0200H,(SI)= 0046H,(SS)= 2F00H,(2F246H)= 7230H则执行 XCHGBX,BP+SI指令后,(BX)=。3执行下列指令序列后,完成的功能是将(DX,AX)的值。MOV DX,1 RCRLOOPCX,4NEXT: SHRAX,1NEXT4下列指令执行后,BX=。MOV MOV ROLRORCL,3 BX,4DABH BX,1BX,CL五、阅读程序并回答问题:START: INAL,20HMOV IN MOV MOVMOVBL,AL AL,30H CL,AL AX,0CH,ALL1:ADDAL,BLADCAH,0LOOPHLTL1问(1)本程

60、序实现什么功能?(2)结果在哪里?(3)用乘法指令 MUL BL 编程并使结果不变。(假设 20H、30H 端口输入的数据均为无符号数)。六、编程题1编程检测 50H 端口输入的字节数据,若为正,将 BL 清 0;若为负,将 BL 置为 FFH。2寄存器 DX 和 AX 的内容程序段:32 位数,DX 内容为高 16 位,AX 内容为低 16 位,编写3将该 32 位数两位,并将移出的保存在 CL 的低两位中;将该 32 位数右移两位,并将移出的低位保存在 BL 的低两位中。数据段中以变址寄存器 SI 为偏移地址的内存单元中连续存放着十个字节压缩型 BCD码,编程求它们的 BCD 和,要求结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论