资源描述
微型计算机原理实验报告
学号 40953055
姓名 海米提。热合木江
班级 测控0902班
实验一 显示程序实验
一般来说,程序需要显示输出提示运行得状况与结果,有得还需要将数据区中得内容显示在屏幕上。本实验要求将指定数据区得数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息得显示。实验中可使用DOS功能调用(INT 21H)。
流程图
2、试验程序
DATA SEGMENT
MES DB 'Show a as hex:', 0AH,0DH,'$'
SD DB 'a'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MES
MOV AH, 09H
INT 21H
MOV DI, OFFSET SD
MOV AL, DS:[DI]
AND AL, 0F0H
SHR AL,4
CMP AL, 0AH
JB C2
ADD AL, 07H
C2: ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
MOV AL, DS:[DI]
AND AL, 0FH
CMP AL, 0AH
JB C3
ADD AL, 07H
C3: ADD AL, 30H
MOV DL, AL
MOV AH, 02H
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
实验二 数据传送实验
三、实验内容
将数据段中得一个字符串传送到附加段中,并输出附加段中得目标字符串到屏幕上
1. 试验程序
DATA SEGMENT
MSR DB "HELLO,WORLD!$"
LEN EQU $ MSR
DDATA ENDS
EXDA SEGMENT
MSD DB LEN DUP(?)
EXDA ENDS
MYSTACK SEGMENT STACK
DW 20 DUP(?)
MYSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DDATA, ES:EXDA
START: MOV AX, DDATA
MOV DS, AX
MOV AX, EXDA
MOV ES,AX
MOV SI, OFFSET MSR
MOV DI, OFFSET MSD
MOV CX, LEN
NEXT: MOV AL, [SI]
MOV ES:[DI], AL
INC SI
INC DI
DEC CX
JNZ NEXT
PUSH ES
POP DS
MOV DX, OFFSET MSD
MOV AH, 9
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
MOV BX, 0
MOV CX, LEN
NEXT: MOV AL, MSR[BX]
MOV ES:MSD[BX], AL
INC BX
LOOP NEXT
2、实验结果
实验三 数码转换程序实验
1. 将ASCII码表示得十进制数转换为二进制数
1. 流程图
2、试验程序
DATAS SEGMENT
NUMBER DB '00012'
DATAS ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV CX,4
MOV SI,OFFSET NUMBER
MOV AL,[SI]
SUB AL,30H
MOV AH,00H
MOV BL,10
L1: MUL BL
ADD AL,[SI+1]
SUB AL,30H
INC SI
DEC CX
JNZ L1
MOV CX,8
MOV BL,AL
NEXT: SHL BL,1
JC ONE
MOV DL,30H
JMP EXIT
ONE: MOV DL,31H
EXIT: MOV AH,02H
INT 21H
DEC CX
JNZ NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
3、实验结果
2. 将十进制数得ASCII码转换为BCD码
本实验要求将键盘输入得一个五位十进制数54321得ASCII码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。若输入得不就是十进制数得ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变为BCD码
1. 实验流程图
2、实验程序
DATAS SEGMENT
BUF DB 6
DB ?
DB 6 DUP(?)
BUFE DB 'FF$'
DATAS ENDS
CODE SEGMENT
ASSUME DS:DATAS,CS:CODE
START: MOV AX,DATAS
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,10
INT 21H
MOV CH,5
MOV SI,DX
L2: MOV BL,[SI+2]
INC SI
CMP BL,39H
JA L1
SUB BL,30H
AND BL,0FH
MOV DH,4
MOV CL,4
;SHL AL,CL
ROL BL,CL
NEXT: SHL BL,1
JC ONE
MOV DL,30H
JMP EXIT
ONE: MOV DL,31H
EXIT: MOV AH,2
INT 21H
DEC DH
JNZ NEXT
DEC CH
JNZ L2
JMP L3
L1: MOV DX,OFFSET BUFE
MOV AH,9
INT 21H
L3: MOV AH,4CH
INT 21H
CODE ENDS
END START
3、实验结果
3.将十六进制数得ASCII码转换为十进制数
十六位二进制数得值域为065535,最大可转换为五位十进制数。五位十进制数可表示为:
ND=D4×104+D3×103+D2×102+D1×10+D0
因此,将十六位二进制数转换为五位ASCII码表示得十进制数,就就是求D1D4,并将它们转化为ASCII码。本实验要求将缓冲区中存放得000CH得ASCII码转换成十进制数,并将转结果显示在屏幕
1. 实验流程图
2. 实验程序
DATA SEGMENT
BUF DB 5
DB ?
DB 5 DUP(?)
HEX DB 4 DUP(?)
DECI DB 5 DUP(0),'$'
S1 DB '16JINZHI : $'
S2 DB 0AH,0DH,'10JINZHI : $'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,S1
MOV AH,9
INT 21H
LEA DX,BUF
MOV AH,10
INT 21H
MOV SI,2
MOV DI,0
CHECK: MOV AL,[SI][BUF]
CMP AL,40H
JS NUM
CMP AL,47H
JS CAPITAL
SUB AL,57H
JMP STORE
NUM: SUB AL,30H
JMP STORE
CAPITAL: SUB AL,37H
JMP STORE
STORE: MOV HEX[DI],AL
INC DI
INC SI
CMP DI,4
JNZ CHECK
LEA DX,S2
MOV AH,9
INT 21H
MOV AX,WORD PTR HEX
SHL AL,4
ADD AH,AL
MOV CH,AH
MOV AX,WORD PTR 2[HEX]
SHL AL,4
ADD AL,AH
MOV AH,CH
MOV SI,5
MOV BX,10
MOV DX,0
CMP AX,0
JNS CONV
NEG AX
PUSH AX
PUSH DX
MOV DL,2DH
MOV AH,2
INT 21H
POP DX
POP AX
CONV: DEC SI
DIV BX
ADD DX,30H
MOV DECI[SI],DL
XOR DX,DX
CMP AX,0
JNZ CONV
LEA DX,DECI
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
3、实验结果
4.BCD码转换为二进制码
本实验要求将四个二位十进制数得BCD码存放在某一内存单元中,转换出得二进制数码存入其后得内存单元中,转换结束,送屏幕显示。
1、实验流程图
2、实验程序
DATA SEGMENT
DASC DB 3
DB ?
DB 3 DUP(?)
S1 DB 0AH,0AH,0DH,'10 JINZHI MA : $'
S2 DB 0AH,0DH,' BCD MA: $'
S3 DB 0AH,0DH,' 2 JINZHI MA : $'
STO DB 8 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DI,0
MOV SI,4
LOOPER: CALL WHOLE
DEC SI
JNZ LOOPER
JMP EXIT
WHOLE: LEA DX,S1
MOV AH,9
INT 21H
LEA DX,DASC
MOV AH,10
INT 21H
LEA DX,S2
MOV AH,9
INT 21H
MOV AX,WORD PTR 2[DASC]
SUB AX,3030H
SHL AL,4
ADD AL,AH
MOV [DI][STO],AL
MOV CH,2
MOV CL,4
PRE1: MOV DX,30H
ROL AL,1
JNC DISP1
ADD DX,01H
DISP1: PUSH AX
MOV AH,02
INT 21H
POP AX
DEC CL
JNZ PRE1
PUSH AX
MOV DL,20H
MOV AH,2
INT 21H
POP AX
DEC CH
MOV CL,4
JNZ PRE1
LEA DX,S3
MOV AH,9
INT 21H
MOV AL,[DI][STO]
MOV BL,AL
AND BL,0FH
SHR AL,4
MOV CL,10
MUL CL
ADD AL,BL
INC DI
MOV [DI][STO],AL
INC DI
MOV CX,8
PRE2: MOV DX,30H
ROL AL,1
JNC DISP2
ADD DX,01H
DISP2: PUSH AX
MOV AH,02
INT 21H
POP AX
LOOP PRE2
RET
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
实验四 运算类程序实验
1. 二进制双精度加法运算
本实验要求计算x+y=z,将结果z输出到屏幕,其中x=001565a0h,y=0021b79eh、
1. 实验流程图
2、实验程序
DATA SEGMENT
X DD 421C65A0H
Y DD 3C41B69BH
S DB 'X+Y= $'
SUM DB 4 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,WORD PTR X
MOV BX,WORD PTR Y
ADD AX,BX
MOV WORD PTR SUM,AX
MOV AX,WORD PTR 2[X]
MOV BX,WORD PTR 2[Y]
ADC AX,BX
MOV WORD PTR 2[SUM],AX
LEA DX,S
MOV AH,9
INT 21H
MOV CX,4
MOV SI,3
CHECK: MOV AL,SUM[SI]
MOV AH,AL
SHR AL,4
CMP AL,0AH
JS DISP1
ADD AL,07H
DISP1: ADD AL,30H
MOV DL,AL
PUSH AX
MOV AH,02H
INT 21H
POP AX
AND AH,0FH
CMP AH,0AH
JS DISP2
ADD AH,07H
DISP2: ADD AH,30H
MOV DL,AH
MOV AH,02H
INT 21H
DEC SI
LOOP CHECK
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
3、实验结果
(2)减法程序
1、实验流程图
2、实验程序
DATA SEGMENT
X DW 0400H
Y DW 0102H
S DB 'Z=XY= $'
Z DW 2 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,S
MOV AH,9
INT 21H
MOV AX,WORD PTR X
MOV BX,WORD PTR Y
SUB AL,BL
AAS
SUB AH,BH
AAS
MOV Z,AX
ADD AX,3030H
MOV BX,AX
MOV DL,30H
MOV AH,2
INT 21H
MOV DL,BH
MOV AH,2
INT 21H
MOV DL,30H
MOV AH,2
INT 21H
MOV DL,BL
MOV AH,2
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
3、实验结果
实验五 分支程序设计实验
实验内容:实验可以使用BH,BL作为暂存现行得最大值与最小值,且在程序得初始,将BH与BL初始化为首字节得内容,然后进入循环操作。在循环操作中,依次从字节序列中逐个取出一个字节得内容与BH,BL进行比较,若取出得字节内容比BH得内容大或比BL中得内容小,则修改之。当循环结束操作时,将BH,BL分别送屏幕显示。
1. 实验流程图
2、实验程序
DATA SEGMENT
BUF DB 'The max number:$'
CUF DB 0AH,0DH,'The mini number:$'
DUF DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
MOV SI,OFFSET DUF
MOV CH,7
MOV BH,[SI]
MOV BL,[SI]
L1: INC SI
MOV AL,[SI]
CMP AL,BH
JB L2
MOV BH,AL
L2: CMP AL,BL
JA L3
MOV BL,AL
L3: DEC CH
JNZ L1
;MOV BH,0B9H
XIANSHI: MOV AL,BH ;显示 BH与BL
MOV CL,4
SHR AL,CL
CMP AL,0AH
JB C1
ADD AL,07H
C1: ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
MOV AL,BH
AND AL,0FH
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
MOV DX,OFFSET CUF
展开阅读全文