程序设计仿真练习题-答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,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
2、将数据块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
LEA 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
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
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
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
END 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