《2022年程序设计仿真练习题-答案 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计仿真练习题-答案 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、8086 程序设计仿真练习题1、数组 STRAING 中存放着多个8 位有符号数,以 “ $” 结束,要求分成正数组和负数组分别存放,并统计两个数组的个数,分别存于正、负数组的第一个字节。DATA SEGMENT STARING DB 25H,0BDH,02H,80H, 7FH,94H,65H,0A5H,$ DA2 DB 20 DUP(0) ;正数DA3 DB 20 DUP(0) ;负数DA4 DB 8 DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,STARING LEA SI,
2、DA2 LEA DI,DA3 MOV CX,0 MOV CL,DA4 LOP1: CMP BX,80H JB LOP2 INC DA3 MOV AL,BX INC DI MOV DI,AL JMP LOP3 LOP2: INC DA2 MOV AL,BX INC SI MOV SI,AL LOP3: INC BX LOOP LOP1 CODE ENDS END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 2、将数
3、据块 DAT1 中的 20 个单字节数,复制到DAT2 中,并从中检索与 2EH 相同的数,将此单元的数换成空格符。如有多个与2EH 相同的数,要求统计出个数,存在寄存器DL 中。DATA SEGMENT DAT1 DB 25H,0BDH,02H,80H,7FH,94H,65H,0A5H,00H,31H DB 2EH,33H,2EH,76H,78H,98H,23H,7AH,98H,38H DAT2 DB 20 DUP(0) DAT3 DB 20 DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START:MOV AX,DATA MOV DS,AX L
4、EA SI,DAT1 LEA DI,DAT2 MOV DX,0 MOV CX,0 MOV CL,DAT3 LOP1: MOV AL,SI MOV DI,AL CMP DI,2EH JZ LOP2 JMP LOP3 LOP2: MOV DI,0 INC DL LOP3: INC SI INC DI LOOP LOP1 CODE ENDS END START 3、将变量 VAR1 中的 16位二进制数取反,并统计原数中 1的个数,将个数存在变量 VAR2中。DATA SEGMENT VAR1 DW 3425H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
5、 - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - VAR2 DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,VAR1 LEA BX,VAR2 MOV CX,0 MOV DX,0 MOV CL,16 CLC LOP1: ROL AX,1 JNC LOP2 INC DL LOP2: LOOP LOP1 NOT AX MOV VAR1,AX MOV BX,DL CODE ENDS END START
6、4、找出数据块 DAT1中的 15 个 8 位有符号数中,最大的偶数和最小的奇数,分别存在变量MAX 和 MIN中。DATA SEGMENT DAT1 DB 81H,8DH,78H,2AH,27H,034H,80H,90H,24H DB 43H,7FH,7EH,23H,76H,54H DAT2 EQU 15 MAX DB 0 MIN DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,DAT1 MOV CX,0 名师资料总结 - - -精品资料欢迎下载 - - - - - -
7、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - MOV AX,0 MOV CL,DAT2 LOP1: MOV AL,SI AND AL,01H JZ OUSHU LEA DI,MIN MOV DL,DI MOV AL,SI CMP AL,DL JG LOP2 MOV DI,AL JMP LOP2 OUSHU:LEA DI,MAX MOV DL,DI MOV AL,SI CMP AL,DL JL LOP2 MOV DI,AL LOP2: INC SI LOOP LOP1 CODE ENDS E
8、ND START 5、将变量 VAR1 中的 16位二进制数,变成 4 个 ASC 码, 存在 VAR2开始的 4 内存单元中。DATA SEGMENT VAR1 DW 23E5H VAR2 DB 4 DUP(0) NUM EQU 4 DATA ENDS CODE SEGMENT ASSUME CS:CODE DS:DATA START:MOV AX,DATA MOV DS,AX MOV DX,VAR1 LEA SI,VAR2 MOV CX,0 MOV CL,NUM LOP1: MOV AX,DX AND AL,0FH 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
9、- - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - OR AL,30H CMP AL,3AH JB LOP2 ADD AL,07H LOP2: MOV SI,AL INC SI ROR DX,4 LOOP LOP1 CODE ENDS END START 6、将数据块 DAT1 中的多个 8 位有符号数,数据块以0 结尾(数据块不包括 0) ,按照从小到大的顺序排列DATA SEGMENT DAT1 DB 34H,0A2H,76H,80H,01H,02H,08H,04H,00H DATA ENDS COD
10、E SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,DAT1 XOR CX,CX LOP1: MOV AL,BX INC BX INC CL CMP AL,0 JNZ LOP1 DEC CX DEC CX XOR BX,BX LOP2: MOV DX,CX LOP3: MOV AL,DAT1BX CMP AL,DAT1BX+1 JL CONT XCHG AL,DAT1BX+1 MOV DAT1BX,AL CONT: INC BX LOOP LOP3 MOV CX,DX MOV BX,0 LOOP LOP2 CO
11、DE ENDS END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 7、内存单元 X中有一个 8 位有符号数,按下式计算Y值,并将 Y值存于其后的单元(注意数据的大小) 。编写完整的汇编语言程序。0305000252xxxxxyDATA SEGMENT X DB 0F6H ;-10 Y DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX
12、,DATA MOV DS,AX MOV AL ,X MOV AH ,0 CMP AL,0 ;用 AL 不可用 AX JL LOP1 JLE LOP2 MOV BX,AX MOV CL ,2 SHL BX,CL ADD BX,AX MOV AX ,BX SUB AX,30 JMP LOP3 LOP1: MOV BL,2 IMUL BL ADD AX,25 JMP LOP3 LOP2: MOV AX,0 LOP3: MOV Y,AX HLT CODE ENDS END START 8、数组 BUF1 中有 10 个 BCD 码,求出其累加和及平均值,分别存在变量 SUM 和 AVER 中。DATA
13、 SEGMENT 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - BUF1 DB 34H,12H,76H,80H,01H,02H,08H,04H,78H,56H SUM DW 0 AVER DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,BUF1 MOV CX,10 CLC MOV AX,0 LOP1: A
14、DD AL,BX DAA JNC LOP2 INC AH LOP2: INC BX LOOP LOP1 LEA SI,SUM MOV SI,AX SHR AX,4 LEA SI,AVER MOV SI,AX CODE ENDS END START 9、数据块 X 中有 8 个 8 位无符号数,分别为记为X1、X2、. X8, 试计算 Y=X1+X2+X3-X4-X5+X6-X7+X8的值,并存在内存中。DATA SEGMENT X DB 04H,01H,01H,01H,01H,20H,01H,01H Y DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS
15、:DATA START:MOV AX,DATA MOV DS,AX LEA BX,X MOV CX,8 MOV DL,11100101B CLC MOV AX,0 LOP1: SHL DL,1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - JNC LOP2 ADD AL,BX JNC JWEI1 INC AH JWEI1: INC BX LOOP LOP1 JMP LOP3 LOP2: SUB AL,BX JNC JWEI2
16、DEC AH JWEI2: INC BX LOOP LOP1 LOP3: LEA SI,Y MOV SI,AX CODE ENDS END START 10、利用调用子程序的方法, 将不大于 9999 的一个 16 位二进制数转换成十进制数,以组合BCD 码的形式存在 2 个内存单元中。DATA SEGMENT X DW 0A0AH Y DB 2 DUP(0) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,0 CALL CHULI CHULI PROC NEAR PUSH AX
17、PUSH BX PUSH CX PUSH DX MOV AX,X LEA SI,Y DAA JNC LOP1 INC AH LOP1: MOV SI+1,AL MOV AL,AH ADD AL,0 ;清除相应标志位如 AF,CF DAA 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - MOV SI,AL POP AX POP BX POP CX POP DX CODE ENDS END START 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -