程序设计仿真练习题-答案

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

相关文档
最新文档