8086程序设计仿真练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]

相关文档
最新文档