8086程序设计仿真练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8086程序设计仿真练习题
1、数组STRAING中存放着多个8位有符号数,以“$”结束,要求分成正数组和负
数组分别存放,并统计两个数组的个数,分别存于正、负数组的第一个字节。DATA SEGMENT
DA1 DB 25H,0BDH,7FH,94H,65H,88H,12H,58H,99H,0A5H,99H,23H,0FBH,0AAH,098H,66H,'$'
DA2 DB LENGTH DA1 DUP(?) ;正数
DA3 DB LENGTH DA1 DUP(?) ;负数
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA,ES:DATA
START: MOV AX , DATA
MOV DS, AX
MOV ES, AX
LEA SI, DA1
LEA DI, DA2
INC DI
LEA BX, DA3
INC BX
XOR DX,DX
LOP1: LODSB
CMP AL, '$'
JZ NUM
TEST AL,80H
JNZ LOP2
STOSB
INC DL
JMP LOP1
LOP2: XCHG BX, DI
STOSB
INC DH
XCHG BX,DI
JMP LOP1
NUM: LEA DI, DA2
MOV [DI], DL
LEA BX, DA3
MOV [BX], DH
HLT
CODE ENDS
END START
2、将数据块DAT1中的20个单字节数,复制到DAT2中,并从中检索与2EH
相同的数,将此单元的数换成空格符。如有多个与2EH相同的数,要求统计出个数,存在寄存器DL中。
DATA SEGMENT
DAT1 DB 25H,0BDH,7FH,94H,2EH,65H,88H,12H,2EH,99H,0A5H,98H,2EH,23H,0FBH,0AAH,96H,66H,0CCH,08H
DAT2 DB 20 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA,ES:DATA
START: MOV AX, DATA
MOV DS, AX
MOV ES, AX
MOV CX, 20
MOV DX, 0
MOV BX,0
LEA SI, DAT1
LEA DI, DAT2
CLD
LP1: LODSB
CMP CX, 0
JZ LP2
STOSB
DEC CX
JMP LP1
LP2: CMP BX,20
JZ OVER
CMP DAT2[BX],2EH
JZ LP3
INC BX
JMP LP2
LP3: MOV DAT2[BX],' '
INC BX
INC DL
JMP LP2
OVER: HLT
CODE ENDS
END START
3、将变量VAR1中的16位二进制数取反,并统计原数中1的个数,将个数存在
变量VAR2中。
DATA SEGMENT
VAR1 DW 1107H
VAR2 DB 1 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,VAR1
NOT AX
MOV VAR1,AX
XOR DL,DL
MOV CX,16
P1: ROL AX, 1
JC P2
INC DL
MOV VAR2,DL
P2: LOOP P1
HLT
CODE ENDS
END START
4、找出数据块DAT1中的15个8位有符号数中,最大的偶数和最小的奇数,分
别存在变量MAX和MIN中。
DA TA SEGMENT
DA T1 DB 12H,86H,53H,76H,66H,96H,09H,25H,37H,48H,06H,88H,0FFH,0ABH,0DDH,5 DUP(0)
MAX DB 1 DUP(0)
MIN DB 1 DUP(0)
DA TA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA ,SS:STACK
START: MOV AX, DATA
MOV DS, AX
MOV BX, 0
MOV CX, 15
DEC CX ;内循环
LOP1: MOV DX, CX ;外循环
LOP2: MOV AL, DA T1[BX]
CMP AL, DA T1[BX+1]
JL LP1
XCHG AL, DA T1[BX+1]
MOV DAT1[BX], AL
LP1: ADD BX,1
LOOP LOP2
MOV CX,DX
MOV BX,0
LOOP LOP1
MOV DI,14
M1: TEST DAT1[DI],01H
JNZ MMAX
MOV AH,DA T1[DI]