微机原理实验报告.docx
- 文档编号:10474353
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:22
- 大小:683.67KB
微机原理实验报告.docx
《微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
微机原理实验报告
实验一大小写字母的转换
一.实验目的
1.编写大小写转换程序。
2.用visualmasm录入和汇编。
3.在dos下用debug运行程序的出结果。
二.实验内容
大小写字母转换程序如下:
TITLEEX3
PAGE50,70
DATSEGMENTPARA'DAT'
D0DB0DH,0AH
D1DB'dfdsjfhjsDHDSFHJSDHSJ','$'
DATENDS
STACSEGMENT
STA1DW100DUP(?
)
STACENDS
CODESEGMENTPARA'CODE'
ASSUMECS:
CODE,DS:
DAT
ASSUMESS:
STAC,ES:
DAT
STARPROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DAT
MOVDS,AX
MOVES,AX
CALLTT
LEADI,D1
CALLTT1
CALLTT
LEADI,D1
CALLTT2
CALLTT
RET
STARENDP
TT1PROC
GO:
MOVAL,[DI]
CMPAL,'$'
JZGO2
CMPAL,'A'
JBGO1
CMPAL,'Z'
JAGO1
ADDBYTEPTR[DI],20H
GO1:
INCDI
JMPGO
GO2:
RET
TT1ENDP
TT2PROC
GM:
MOVAL,[DI]
CMPAL,'$'
JZGM2
CMPAL,'a'
JBGM1
CMPAL,'z'
JAGM1
SUBBYTEPTR[DI],20H
GM1:
INCDI
JMPGM
GM2:
RET
TT2ENDP
TTPROC
LEADX,D1
MOVAH,9
INT21H
RET
TTENDP
CODEENDS
ENDSTAR
三.程序的运行
四、运行结果
实验二十六进制数转换为ASCII
实验内容
一、程序设计
NAMEEX1
PAGE50,70
DATSEGMENTpara'dat'
A1DB12h,34h,56h,78h,9ah
DB0bch,0deh,0f0h
b1=$-a1
b2=b1*2
A2DBb2DUP(?
)
DATENDS
STACSEGMENTparastack'sta'
STA1DW100DUP(?
)
STACENDS
CODESEGMENTpara'sta'
ASSUMECS:
code,DS:
dat
ASSUMESS:
stac,ES:
dat
STARPROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,dat
MOVDS,AX
MOVES,AX
LEASI,A1
LEADI,A2
MOVCX,b1
G1:
MOVBL,2
MOVAL,[SI]
MOVBH,AL
PUSHCX
MOVCL,4
RORAL,CL
POPCX
G2:
ANDAL,0fh
DAA
ADDAL,0f0h
ADCAL,40h
MOV[DI],AL
INCDI
MOVAL,BH
DECBL
JNZG2
INCSI
LOOPG1
MOVSI,OFFSETA2
MOVCX,b2
CALLP1
RET
STARENDP
P1PROC
MOVBL,2
G:
MOVDL,[SI]
MOVAH,2
INT21h
INCSI
DECBL
JNZT
MOVDL,''
MOVAH,2
INT21h
MOVBL,2
T:
LOOPG
RET
P1ENDP
CODEENDS
ENDSTAR
二、程序运行
三、运行结果
实验三数据排序
一、实验要求:
给一组随机数,将此组数据排序,使之成为有序数据。
二、实验目的:
了解数据排序的简单算法,了解数列的有序和无序概念。
三、实验程序如下:
CODESSEGMENT
ORG0100H
ASSUMECS:
CODES
STAR:
JMPSSTT
ASCIIDB'GAJXYDEBFIRKWR'
DB'QOUZVCHMST4135'
COUNT=$-ASCII-1
OKDB0DH,0AH,'OK!
$'
SSTT:
MOVAX,CS
MOVDS,AX
MOVDL,COUNT
MOVDH,1
XORBX,BX
L0:
ORDH,DH
JZL3
MOVDH,0
MOVCX,COUNT
SUBCX,BX
MOVSI,OFFSETASCII
L1:
MOVAL,[SI]
INCSI
CMPAL,[SI]
JBEL2
XCHGAL,[SI]
MOV[SI-1],AL
MOVDH,1
L2:
LOOPL1
INCBX
DECDL
JNZL0
L3:
MOVDX,OFFSETASCII
MOVAH,9
INT21H
INT20H
CODESENDS
ENDSTAR
四、运行步骤:
五、运行结果:
实验四DEBUG命令调试
1、实验目的:
(1)熟练掌握常用的DEBUG命令;
(2)用DEBUG调试汇编指令,加深对指令功能的理解;
2、实验要求:
本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
3、实验内容:
(1)MOVAL,38H
(2)MOVAL,71H
MOVBL,19HMOVBL,93H
ADDAL,BLADDAL,BL
DAADAA
(3)MOVAH,00H(4)MOVAH,00H
MOVAL,05HMOVAL,35H
MOVBL,09HMOVBL,39H
ADDAL,BLADDAL,BL
AAAAAA
(5)MOVAL,06H(6)MOVAX,000A
MOVBL,09HMOVCL,06H
MULBLMULCL
AAM
(7)CLC
MOVAL,FAH
SARAL,1
SHRAL,1
四、运行结果:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
实验五两个数相乘的实验
一、实验目的
掌握乘法指令和循环指令的用法。
二、实验内容
实现十进制数的乘法,被乘数和乘数均以ASCII码形式放在内存中,乘积在屏幕上显示出来。
三、程序如下
DATASEGMENT
DATA1DB32H,39H,30H,35H,34H
DATA2DB33H
RESULTDB6DUP(00)
DATAENDS
STACKSEGMENTSTACK'STACK'
STADB30DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
MOVSI,OFFSETDATA2
MOVBL,[SI]
ANDBL,00001111B
MOVSI,OFFSETDATA1
MOVDI,OFFSETRESULT
MOVCX,05
LOOP1:
MOVAL,[SI]
ANDAL,00001111B
INCSI
MULBL
AAM
ADDAL,[DI]
AAA
MOV[DI],AL
INCDI
MOV[DI],AH
LOOPLOOP1
MOVCX,06
MOVSI,OFFSETRESULT+5
DISPL:
MOVAH,02
MOVDL,[SI]
ADDDL,30H
INT21H
DECSI
LOOPDISPL
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
四、运行过程如下
五、运行结果
实验六二进制数转换为BCD码
一、实验要求
将给定的一个二进制数转换成BCD码
二、实验目的
(1)掌握简单的数值转换算法
(2)基本了解数值的各种表达式
三、实验程序
DATASEGMENT
RESULTDB3DUP(?
)
DATAENDS
STACKSEGMENT
STADB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
STARTPROCNEAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
MOVAX,123
MOVCL,100
DIVCL
MOVRESULT,AL
MOVAL,AH
MOVAH,0
MOVCL,10
DIVCL
MOVRESULT+1,AL
MOVRESULT+2,AH
JMP$
CODEENDS
ENDSTART
四、实验运行步骤
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告