微机原理实验报告Word文件下载.docx
- 文档编号:19185818
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:26
- 大小:443.51KB
微机原理实验报告Word文件下载.docx
《微机原理实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
起始时刻CF=0,ZF=0,SF=0
CFSFZF
ROLAX,CLAX=4213H100
RORAX,CLAX=1342H000
SHLAX,CLAX=4210H100
SHRAX,CLAX=0342H000
SARAX,CLAX=0342H000
RCLAX,CLAX=4211H100
RCRAX,CLAX=2342H000
4、设有以下部分程序段:
TABLEDW10H,20H,30H,40H,50H
ENTRYDW3
┇
LEABX,TABLE
ADDBX,ENTRY
MOVAX,[BX]
(1)将以上程序段补充成为一个完整的汇编程序。
2、编辑、调试并运行程序,记录在执行MOVAX,[BX]后AX的内容。
DATASEGMENT
TABLEDW10H,20H,30H,40H,50H
ENTRYDW4
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
二、实验步骤与源程序(若是硬件,需有硬件连线图;
若是软件,需有流程图):
答:
方法一:
CODE
MOVAX,4000H
MOVBX,8000H
MOVCX,AX
MOVAX,BX
MOVBX,CX
ENDSTART
方法二:
CODESEGMENT
XCHGAX,BX
方法三:
PUSHAX
PUSHBX
POPAX
POPBX
实验四:
三、测试数据与实验结果(可以抓图粘贴)
编译成功
连接成功,生成exe文件。
BX开始代表偏移量,即指向数组的第一个字节,在加上ENTRY,即加上4以后,[BX]即代表第五个字节,30H,所以AX中存放的是30H。
四、本次上机的体会或收获
通过这次上机操作,让我熟悉了再DEBUG环境下的汇编语言操作,进一步了解了汇编语言的编译连接和执行等过程。
实验中遇到的问题:
开始在记事本中输入源程序时,保存时要加上后缀名.asm,保存格式为所有文件,否则不能够进行编译,此外要注意所建立的文件和MASM、LINK软件都应该放在一个文件夹下。
在输入程序时有些标点不能少,还有代表十六进制的H字符不能少;
输出字符串时需要在字符串末尾加上'
$'
编译成功后在界面下输入MASMEX1(EX1是文件名),几次回车后再输入LINKEX1,回车后即可生成可执行的EXE文件。
这只是第一次做实验,我也只是刚刚接触到汇编语言的实际操作,后面还有很多次机会,我要好好把握,努力提高自己的水平,为以后的学习打下基础。
实验二
实验题目分支与DOS中断功能调用程序设计实验完成日期12周-周三
1.掌握汇编语言的开发环境和上机过程
2.熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法
3.熟悉逻辑类指令用法
4.掌握传送类指令功能
5.掌握顺序程序设计的基本方法
二、实验内容:
1.求内存单元中所定义的两个字节变量的连续内容之和。
要求用三种不同的方法实现,下面已给出一种方法,请自编出另两种方法的程序(提示:
(1)用定义字的形式实现,
(2)用直接寻址方式实现)
2、计算表达式2*(X+Y-50)/Z的值的程序。
3.拆字程序。
将1000H的内容拆开,高4位送4001H低位,低4位送4002H低位。
三、实验步骤与源程序(若是硬件,需有硬件连线图;
1.源程序如下:
方法一:
DATASEGMENT
ADB5CH,85H;
两字节运算数
BDB43H,0ABH
ASSUMECS:
CODE,ds:
START:
MOVAX,DATA
MOVSI,0置位移量初值
MOVAL,A[SI]取加数低位
ADDAL,B[SI]两数相加
MOVA[SI],AL存回A单元
INCSI调整位移量
MOVAL,A[SI];
取加数高位
ADCAL,B[SI]带进位加
CODEENDS
方法二:
ADB5CH,85H;
BDB43H,0ABH
DATAENDS
MOVAX,DATA
MOVAX,A
ADDAX,B
MOVA,AX
codesegment
assumecs:
code
start:
movax,855ch
movbx,0ab43h
addal,bl
adcah,bh
movah,4ch
int21h
codeends
endstart
2.源程序如下:
datasegment
xdw0033h
ydw0ab0ch
zdw0110h
adw?
bdw?
dataends
code,ds:
data
movax,data
movds,ax
movax,x
adcax,y
sbbax,50
movbx,2
imulbx
idivz
mova,ax
movb,dx
3.源程序如下:
datasegment
org1000h
adw12ach
org4001h
bdb?
cdb?
dataends
assumecs:
movax,data
movds,ax
movax,a
movb,ah
movc,al
codeends
endstart
四、测试数据与实验结果(可以抓图粘贴)
实验1:
方法一程序结果
方法二程序结果:
方法三程序结果:
实验2程序结果:
实验3程序结果:
实验三
实验题目分支结构程序设计
完成日期12周-周五
1.实验内容:
1、请编写一程序,实现将大写字母字符串转换成小写字母字符串。
设字符串的首地址为STRING,字符串的长度在LEN单元内。
3.从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“YouInputaLowercaseLetter!
”;
若输入为大写字母,显示“YouInputaUppercaseLetter!
若输入为数字,显示“YouInputaDigit!
若输入为其它字符,显示“YouInputOtherLetter!
”。
二.实验步骤与源程序(若是硬件,需有硬件连线图;
源程序1:
STRINGDB'
IAMASTUDENT!
LENEQU$-STRING
ASSUMEDS:
DATA,CS:
MOVBX,OFFSETSTRING
MOVCX,LEN
NEXT:
MOVAL,[BX]
CMPAL,'
A'
JBNEXT1
Z'
JANEXT1
ADDAL,20H
MOV[BX],AL
NEXT1:
INCBX
LOOPNEXT
MOVAH,9
MOVDX,OFFSETSTRING
原程序三:
数字09的ASCII码为30H39H;
大写字母的ASCII码为41H5AH,小写字母的ASCII码为61H7AH。
本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。
字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。
(1)程序框架
INFOR1DB0AH,0DH,"
PleasePressanykeytoinputaletter:
$"
INFOR2DB0AH,0DH,"
YouInputalowercaseletter!
$"
INFOR3DB0AH,0DH,"
Youinputauppercaseletter!
INFOR4DB0AH,0DH,"
Youinputadigit!
INFOR5DB0ah,0dh,"
Youinputotherletter!
ASSUMECS:
MOVDS,AX
MOVDX,OFFSETINFOR1
MOVAH,09H
MOVAH,1
INT21H
CMPAL,'
0'
JBOTHER
9'
JBEDIGIT
CMPAL,'
CMPAL,'
JBEUPPER
a'
z'
JBELOWER
JMPPEND
LOWER:
MOVDX,OFFSETINFOR2
UPPER:
MOVDX,OFFSETINFOR3
DIGIT:
MOVDX,OFFSETINFOR4
OTHER:
MOVDX,OFFSETINFOR5
PEND:
CODEEndS
三.测试数据与实验结果(可以抓图粘贴)
程序结果1:
程序结果3:
实验四
实验题目循环程序设计完成日期13周-周三
1.实验目的与要求:
1.掌握循环指令LOOP、LOOPZ、LOOPNZ的使用方法
2.掌握实现单重、多重循环程序设计、编写、调试和运行的方法。
2.实验内容:
1.在数据段变量名为A的数据区内有10个字符,编写程序实现将这10个字符以相反顺序传送到附加段变量名为B的内存区中。
2、循环结构程序设计
编写一个程序,将内存1000H开始的连续100个字节送往1050H开始的连续100个内存单元中。
要求使用三种不同的方法(不用串操作指令、用单一的串操作指令、用带重复前缀的串操作指令),下面已给出一种实现方法,请给出另外两种实现方法的源程序清单:
3.数据段开始区域中,连续存放着10个无符号数,编程是先找出这10个数中最大的一个数,并将其存放到该数据区的后面。
五、实验步骤与源程序(若是硬件,需有硬件连线图;
源程序1:
adb'
1234567890'
nequ$-a
bdbndup(?
)
data,es:
movds,ax
moves,ax
leasi,a
leadi,b
adddi,n
movcx,n
move:
moval,[si]
moves:
[di],al
incsi
decdi
loopmove
movah,4ch
int21h
源程序2:
方法一:
带重复前缀的串操作指令
ORG1000H
DB100DUP(‘A’)
ORG1050H
DB100DUP(‘B’)
ASSUMEDS:
DATA,ES:
MOVDS,AX
MOVES,AX
MOVSI,1000H
MOVDI,1050H
MOVCX,100
CLD
REPMOVSB
MOVAH,4CH
INT21H
不带重复前缀的串操作指令
MOVSI,1000H
MOVSB
不用串操作指令,而用MOV指令
NEXT:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
源程序3:
xxDW10,0,20,15,38,236,30,45,11,49
MAXDW0
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETxx
MOVCX,10
LOP:
MOVAX,[BX]
CMPAX,MAX
JBL2
MOVMAX,AX
L2:
INCBX
LOOPLOP
MOVAH,4CH
程序结果2:
实验五
实验题目DOS中断功能调用程序设计完成日期13周-周五
一.实验目的与要求:
1.掌握DOS的基本命令:
2.了解指令过程;
二:
实验内容:
1.编程实现由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。
源程序:
2、编写一程序,实现从键盘输入一个字符,判断其是不是数字,如果是则请输出这个数字,如果不是,请输出“这不是一个数字”的英文信息(要求:
能连续输入)。
三.实验步骤与源程序(若是硬件,需有硬件连线图;
codesegment
movah,1
movah,4ch
int21h
codeends
MS1DB'
ITISADIGIT$'
MS2DB'
ITISNOTADIGIT$'
MOVDX,OFFSETMS2
MOVAH,1
INT21H;
CMPAL,0DH
JZEXIT
JBNO
CMPAL,'
JANO
MOVDX,OFFSETMS1
NO:
JMPNEXT
EXIT:
MOVAH,4CH
四.测试数据与实验结果(可以抓图粘贴)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告