长沙理大学-长沙理大学
标准文档
太原理工大学现代科技学院
微机原理及接口技术
课程
实验报告
专业班级
信息
13-1
班
学
号
2013101269
姓
名
陈
凯
指导教师
师
卫
标准文档
…
…
…
…
…
…
…
…
…
…
…
…
…<
/p>
…
装
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
订
…
…
…
…
…
…
…<
/p>
…
…
…
…
…
…
…
…
…
线
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…<
/p>
实验名称
多位十进制数相加
同组人
专业班级
信息
13-1
班
学号
2013101269
姓名
陈凯
成绩
实验一:多位十进制数相加
一、
实验目的:
学习数据传送和算数运
算指令的用法。
二、
实验内容:
将两个朵唯十进制数
28056
、
47193
相加,并显示加数、被加数、和。要求两个家属均以
ASCII
码形式各自顺序存在
DATA1
和
DATA2 p>
内存单元中,结果送回
DATA1
处(低位在前,高位在后)
。
三、实验程序:
SHOW MACRO B
MOV DL,B
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT
DATA1 DB 33H,39H,31H,37H,34H
DATA2 DB 36H,35H,30H,38H,32H
DATA3 DB '_',0DH,0AH,'$$'
DATA ENDS
STACK SEGMENT
STACK
STA DB 20 DUP (?)
TOP
EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA,SS:STACK,ES:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA2
MOV
BX,05
SHOW 20H
CALL DISPL
SHOW 0DH
SHOW 0AH
MOV SI,OFFSET DATA1
MOV
BX,05
SHOW 2BH
标准文档
CALL
DISPL
SHOW 0DH
SHOW 0AH
MOV CL,7
S1:SHOW 2DH
LOOP S1
SHOW 0DH
SHOW 0AH
MOV SI,OFFSET DATA1
MOV DI,OFFSET DATA2
CALL
ADDA
MOV SI,OFFSET DATA1
MOV
BX,05
SHOW 20H
CALL DISPL
MOV AX,4C00H
INT 21H
DISPL PROC NEAR
DS1:SHOW
[SI+BX-1]
DEC BX
JNZ DS1
RET
DISPL ENDP
ADDA PROC NEAR
MOV DX,SI
MOV BP,DI
MOV BX,05
AD1:SUB BYTE PTR [SI+BX-1],30H
SUB BYTE PTR [DI+BX-1],30H
DEC BX
JNZ AD1
MOV SI,DX
MOV DI,BP
MOV CX,05
CLC
AD2:MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL
AAA
MOV
[SI],AL
INC SI
INC DI
LOOP AD2
MOV SI,DX
标准文档
MOV DI,BP
MOV BX,05
AD3:ADD BYTE PTR[SI+BX-1],30H
ADD BYTE PTR[DI+BX-1],30H
DEC BX
JNZ AD3
RET
ADDA ENDP
CODE ENDS
END START
四、实验截图
下图为实验程序及其编译截图:
标准文档
正确结果:
标准文档
实验名称
两个十进制数的乘法
同组人
专业班级
信息
13-1
班
学号
2013101269
姓名
陈凯
成绩
实验二:两个十进制数的乘法
一、实验目的:掌握乘法指令和循环指令的用法。
二、实验内容:实现十进制数的乘法。被乘数(
29054
)和乘数(
3
)均以
ASCII
码的形式存放在内存中,
< p>乘数、被乘数、积均在屏幕上显示出来。
三、实验程序
SHOW MACRO B
MOV AH,02H
MOV DL,B
INT 21H
ENDM
DATA SEGMENT
DATA1 DB 32H,39H,30H,35H,34H
DATA2 DB 33H
RESULT DB 6
DUP(00H)
DATA ENDS
STACK
SEGMENT
STA DB 20 DUP(?)
TOP
EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME
CS:CODE,DS:DATA,SS:STACK,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA1
MOV CL,5
SHOW
20H
CALL DISPL
SHOW 0DH
SHOW 0AH
SHOW 2AH
MOV SI,OFFSET DATA2
标准文档
MOV BL,[SI]
AND BL,00001111B
MOV CL,1
CALL DISPL
SHOW 0DH
SHOW 0AH
MOV CL,7
S1: SHOW 2DH
LOOP S1
SHOW 0DH
SHOW 0AH
MOV SI,OFFSET DATA1
MOV DI,OFFSET RESULT
MOV AX,00H
MOV
CX,05
LOOP1: MOV AL,[SI]
AND AL,00001111B
INC SI
MUL BL
AAM
ADD AH,[DI]
AAA
MOV [DI],AH
INC DI
MOV [DI],AL
LOOP LOOP1
MOV SI,OFFSET RESULT
MOV CX,06
LOP: MOV
DL,[SI]
ADD DL,30H
MOV [SI],DL
INC SI
LOOP LOP
MOV SI,OFFSET RESULT
MOV CL,6
CALL
DISPL
MOV AX,4C00H
INT 21H
DISPL PROC NEAR
SD1:
SHOW [SI]
INC SI
LOOP SD1
RET
DISPL ENDP
标准文档
CODE ENDS
END START
四、实验截图
实验程序与编译:
实验运行结果:
标准文档
实验名称
统计数据个数程序
同组人
专业班级
信息
13-1
班
学号
2013101269
姓名
陈凯
成绩
实验三:统计数据个数
一、实验目的:掌握多
位十六进制数转换成朵唯十进制数的
ASCII
码的方法。
p>
二、实验内容:
统计内存数组中大于
0
和小于
0
的元素的个数,
并将统计结果分别存放在
LRE SULT
和
HResult
变量中,并显示个数。
三、实验程序:
DATA
SEGMENT
ARY DB
1,3,-1,2,6,-9,-5,7,8,1,3,8,-6,8,-9,-7,2,4,-3,-3
DB
-4,7,7,8,3,1,3,6,8,5,5,6,4,5,7,-4,2,4,5,-7,5,4
DB
2,5,7,8,8,8,7,6,-5,4,3,2,1,-1,2,2,3,-4,5,6,7
N=$$-ARY
LRESULT DW 0
HRESULT DW 0
TJJG DB
'STATISTICS RESULT:',0DH,0AH,'$$'
DATA
ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV
AX,DATA
MOV DS,AX
MOV ES,AX
SHOW MACRO B
PUSH DX
PUSH AX
MOV DX,B
MOV AH,02H
INT 21H
POP AX
POP DX
ENDM
XOR CX,CX
MOV CX,N
LEA SI,ARY
LOP: MOV AL,[SI]
CMP AL,0
JNS PLUS
标准文档
INC LRESULT
JMP CONT
PLUS: INC HRESULT
CONT:
INC SI
LOOP LOP
LEA DX,TJJG
MOV AH,09H
INT 21H
SHOW '+'
MOV AX,HRESULT
CALL DISPL
SHOW 0DH
SHOW 0AH
SHOW '-'
MOV AX,LRESULT
CALL DISPL
MOV AX,4C00H
INT 21H
DISPL PROC
PUSH DX
PUSH AX
MOV CX,10
MOV DX,00H
MOV BX,00H
DIV CX
MOV BX,DX
ADD AL,30H
DISPL1: MOV DL,AL
MOV AH,02H
INT 21H
MOV DL,BL
ADD DL,30H
MOV AH,02H
INT 21H
POP AX
POP DX
RET
DISPL ENDP
CODE
ENDS
END START
标准文档
四、实验截图
实验调试编译程序:
实验运行结果:
标准文档
…
…
…
…
…
…
…
…
…
…
…
…
…<
/p>
…
装
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
订
…
…
…
…
…
…
…<
/p>
…
…
…
…
…
…
…
…
…
线
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…<
/p>
实验名称
8255
与开关电路实验
同组人
专业班级
信息
13-1
班
学号
2013101269
姓名
陈凯
成绩
实验四:
8255A
与开关电路的实验
一、实验目地:
(
1
)掌握
8255A
并行接口芯片的原理及编程方法;
(
2
)掌握读取开关状态的方法。
二、实验内容:
编写程序,通过
8255A
接口芯片,读取开关状态,并在
PC
机屏幕上显示出 来。
三、线路连接:
实验中
共有
8
个逻辑开关,
8255A
端口
C
的
8
位连接
8
个,开关向上拨 时,
8255A
相应的端口输出高电
平‘
1
’
;开关向下拨时,响应端口输出低电平’
0
‘ 。
四、实验程序
DATA
SEGMENT
IOPORT EQU 0D880H-280H
IO8255C EQU IOPORT+282H
IO8255T EQU IOPORT+283H
TAB
DB '1 2 3 4 5 6 7 8 ',0DH,0AH,'$$'
MESS
DB 'PLEASE ENTER ANY KEY WHEN READY!',0DH,0AH,'$$'
DATA ENDS
STACK SEGMENT
STACK
STA DW 50 DUP(?)
STACK
ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:MOV AX,DATA
MOV
DS,AX
MOV ES,AX
MOV AH,09H
MOV DX,OFFSET MESS
INT 21H
MOV
AH,01H
INT 21H
MOV DX,IO8255T
MOV AL,99H
OUT DX,AL
MOV
DX,IO8255C
IN AL,DX
MOV BL,AL
MOV AH,09H
标准文档
MOV DX,OFFSET TAB
INT 21H
MOV CL,08H
BBB: MOV DL,BL
CALL
DISP
SHL BL,1
LOOP BBB
MOV AX,4C00H
INT 21H
DISP PROC NEAR
PUSH AX
PUSH CX
MOV CL,07H
AND DL,80H
SHR DL,CL
POP CX
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,20H
INT 21H
MOV DL,20H
INT 21H
POP AX
RET
DISP ENDP
CODE ENDS
END START
五、实验截图
程序编译:
标准文档
实验结果: