江西理工大学微机原理

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

1、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENT

ARRAY DB 20 DUP (?)

NUM DB 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

STARTUP:LEA SI , ARRAY;

MOV AL ,[SI]

MOV BL,0

MOV CX,19

AGAIN: INC SI

XOR AL ,[SI]

J NS NEXT

INC BL

NEXT: MOV AL ,[SI]

LOOP AGAIN

MOV NUM,BL

MOV AH ,4CH

INT 21H

CODE ENDS

END STARTUP

2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL

.8086

.DATA

N1 DW 1234H

N2 DW 5678H

N3 DW 4444H

M1 DW 0

M2 DW 0

M3 DW 0

CODE

. STARTUP

MOV AX ,N2

MUL N3

MOV M3,AX

MOV M2,DX

MOV AX,N3

MUL N1

ADD M2,AX

ADC M1,DX

.EXIT

END

3、设有3个自变量的变量名及其内容如下

VAR1 3C46H , VAR2 F678H , VAR3

0059H

设计一个数据段定义这三个变量及其地址表

变量DDRTABL

DATA SEGMENT

VAR1 DW 3C46H

VAR2 DW F678H

VAR3 DW 0059H

ADDRTABL

DD VAR1

DD VAR2

DD VAR3

DATA ENDS

4、设有一个符号数组共M个求其中最大的数,如需要求绝对值最大应如何修改 如为无符号数 程序如何修改。

DATA SEGMENT

M EQU 10

DAT DW M DUP(?)

MAX DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,DS:DATA

STARUP : MOV AX ,DAT

MOV MAX ,AX

CLD

LEA SI ,DAT

MOV CX ,M

L1: LODSW

CMP AX ,MAX

JNG LAB

MOV MAX ,AX

LAB : LOOP L1

MOV AH ,4CH

INT 21H

CODE ENDS

END STARTUP

绝对值修改 需要在LODSW插入

AND AX ,AX

JNS LAB1

NEG AX

LAB1: CMP AX ,MAX

程序初始化时MAX应送入0

无符号数程序修改

判别条件CMP AX ,MAX

JNG LAB

修改为CMP AX,MAX

JBE LAB

5、编制一个程序将20个字节的数组分为正数和负数组 并计算两个数组中数据的个数DATA SEGMENT

DAT DB 20 DUP (?)

PDAT DB 20 DUP(?)

PDAT DB ?

PLEN DB ?

NDAT DB 20 DUP (?)

NLEN DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,DS:DATA

STARTUP:

XOR BX ,BX

LEA SI ,DAT

XOR DI,DI

CLD

MOV CX,20

LOOP0 : LODSB

CMP AL,0

JGE LOOP1

MOV NDAT[BX] ,AL

INC BX

JMP LAB

LOOP1:

MOV PDAT[DI] ,AL

INC DI

LAB: DEC CX

JNZ LOOP0

MOV PLEN ,DI

MOV NLEN,BX

MOV AH,4CH

INT 21H

CODE ENDS

END STARTUP

6、把从A开始的8个字节单元内容依次和从B开始的8个相应的字节单元内容互换。DATA SEGMENT

A D

B 'ABCDEFGH'

B DB '12345678'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,DS:DATA

START: MOV AX ,DATA

MOV DS,AX

LEA SI ,A

LEA DI ,B

MOV CX,8

LP:MOV AL ,[SI]

XCHG AL ,[DI]

MOV [SI], AL

INC SI

INC DI

LOOP LP

MOV AH ,4CH

INT 21H

CODE ENDS

END START

7、计算BUF开始的数组中的100个元素中非零元素的个数 并将其存入COUNT单元,补全指令

BUF DB 100 DUP (?)

COUNT DB 0

..............

STARTUP: MOV AX,DATA

MOV DS,AX

LEA SI, (1)________

MOV CX ,(2)______

CON:MOV AL,[SI]

CMP AL ,(3)_______

.JZ NEXT

INC (4)_____

NEXT: INC SI

LOOP (5)______

HLT

答案 BUF 100 0 COUNT CON

8、程序执行后寄存器的值

MOV AX,01H

MOV BX ,02H

PUSH BX

PUSH AX

POP BX 执行后BX= 1 ___

POP AX 执行后AX=(1)____

MOV AX ,3F5FH 执行后AL=(3)______

MOV CX ,4

ROR AL,CL 执行后AL=(4)____

AND AL ,0FH 执行后AL=(5)_______

相关文档
最新文档