微机原理实验报告Word格式.docx
《微机原理实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
![微机原理实验报告Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/23/b2899936-0f61-43f1-9a47-590678faa4f6/b2899936-0f61-43f1-9a47-590678faa4f61.gif)
在操作时要注意提示信息,并按提示操作。
3、用DEBUG调试简单程序。
测试程序:
[根据实验内容写出测试的程序代码]
1.-ACS:
0106
MOVAX,1234
MOVBX,2345
MOVCX,0
ADDAX,BX
MOVCX,AX
INT20
试验结果:
2.-ACS:
116
MOVAX,[0124]
MOVBX,[0126]
MOV[0128],AX
DW2222
DW8888
DW0
3.-ACS:
0100
MOVAL,74
ADDAL,70
MOVAL,7A
ADDAL,94
MOVAL,43
ADCAL,65
实验中出现的问题及解决方法:
计算机由于存在权限问题无法进行DEBUG程序调试,安装虚拟软件进行解决。
实验总结:
通过debug程序的使用,基本掌握了debug操作中的基本指令,尤其是—A,—D命令,能够了解一台计算机的各个寄存器以及标志位的状态。
初步掌握了汇编程序的编辑、编译、连接和执行的全过程,学习了用
DEBUG
调试程序的方法,了解了另一种程序语言的编写。
感觉它比其他高级语言确实要复杂,但是能更一步体会计算机是如何操作的。
06.21
实验二汇编语言上机环境及基本步骤
1.掌握编写汇编源程序的基本格式。
2.熟悉汇编语言上机环境。
3.掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4.掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。
1.在屏幕上显示并打印字符串“Thisisasampleprogram.”
2在屏幕上显示并打印字符串“MynameisXXX!
”XXX为自己姓名汉语拼音。
1.
********定义数据段*********
DATASEGMENT
DA1DB‘Thisisasampleprogram.’
DB0DH,0AH,’$’
DATAENDS
;
********定义堆栈段*********
STACKSEGMENT
ST1DB100DUP(?
)
STACKENDS
********定义代码段*********
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,STACK;
送堆栈段地址
MOVSS,AX
PUSHDS;
返回DOS作准备
MOVAX,0
PUSHAX
MOVAX,DATA;
送数据段段地址
MOVDS,AX
MOVAH,9;
DOS9号功能调用,显示字符串
MOVDX,OFFSETDA1
INT21H
RET
MAINENDP
CODEENDS
ENDSTART
实验结果截图如下:
1.转换成exe失败,发现程序写的不对,经过改正,获得成功。
2.标点符号忘了改成英文格式,经过修改,完成实验。
3.可运行但结果不对,经过修改,完场实验。
1、掌握了编写汇编源程序的基本格式。
2、熟悉了汇编语言上机环境。
3、掌握了汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4、掌握了汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。
实验三两个多位十进制数相加的实验
1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立、汇编、链接、调试和运行8086汇编语言程序的过程。
1.将两个多位十进制数相加,要求被加数均以ASCⅡ码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
2.在程序中加入自己的姓名学号字符串,并显示到结果。
CRLFMACRO
MOVDL,0DH
MOVAH,02H
INT21H
MOVDL,0AH
ENDM
DATASEGMENT
DATA1DB33H,39H,31H,37H,34H
DATA2DB36H,35H,30H,38H,32H
STADB20DUP(?
TOPEQULENGTHSTA
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
MOVSI,OFFSETDATA2
MOVBX,05
CALLDISPL
CRLF
MOVSI,OFFSETDATA1
MOVDI,OFFSETDATA2
CALLADDA
MOVAX,4C00H
DISPLPROCNEAR
DS1:
MOVAH,02
MOVDL,[SI+BX-1]
DECBX
JNZDS1
RET
DISPLENDP
ADDAPROCNEAR
MOVDX,SI
MOVBP,DI
AD1:
SUBBYTEPTR[SI+BX-1],30H
SUBBYTEPTR[DI+BX-1],30H
JNZAD1
MOVSI,DX
MOVDI,BP
MOVCX,05
CLC
AD2:
MOVAL,[SI]
MOVBL,[DI]
ADCAL,BL
AAA
MOV[SI],AL
INCSI
INCDI
LOOPAD2
AD3:
ADDBYTEPTR[SI+BX-1],30H
ADDBYTEPTR[DI+BX-1],30H
JNZAD3
ADDAENDP
CODEENDS
ENDSTART
1.学会了数据传送和算术运算指令的用法。
2.熟悉了在PC机上建立、汇编、链接、调试和运行8086汇编语言程序的过程。
3.掌握了编写汇编源程序的基本格式。
4.熟悉了汇编语言上机环境。
5.掌握了汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
实验四循环结构程序设计
1.掌握循环程序的结构及执行过程;
2.掌握循环控制指令的功能;
3.掌握循环程序设计方法与调试方法。
1.单重循环程序设计。
已知当前数据段中DATA1和DATA2开始分别存放若干字节数据,数据个数相同,编制程序检查数据块中的数据是否相同,若相同,则在屏幕上显示1;
否则显示0。
2.在程序中加入自己的姓名学号字符串,并显示到结果。
1.;
************EXAM.ASM*****************
DSEGSEGMENT
DATA1DB‘ABCDEFG3’
DATA2DB‘ABCDEF4G’
CNTDW8
DSEGENDS
CSEGSEGMENT
CSEG,DS:
DSEG
MOVAX,DSEG
MOVDL,31H;
1的ASCII码送DL
LEASI,DATA1
LEADI,DATA2
MOVCX,CNT
DECSI
DECDI
AGAIN:
INCSI
INCDI
MOVAL,[SI]
CMPAL,[DI]
LOOPZAGAIN
JZDISP
DECDL
DISP:
MOVAH,2
MOVAH,4CH;
返回DOS
CSEGENDS
2.标点符号忘了改成英文格式,经过修改,完成实验。
3.可运行但结果不对,经过修改,完场实验。
1.掌握了循环程序的结构及执行过程;
2.掌握了循环控制指令的功能;
3.掌握了循环程序设计方法与调试方法
4.掌握了编写汇编源程序的基本格式。
5.熟悉了汇编语言上机环境。
实验五子程序设计
1.掌握子程序的结构和设计方法;
2.掌握子程序的调用和返回指令的用法及执行情况;
3.掌握在子程序调用时堆栈的变化情况;
4.掌握主程序与子程序间参数传递的方法;
5.掌握现场的保护与恢复方法。
1.已知当前数据段中BUF开始分别存放若干二进制字节数据,编制程序将这些数据分别转换为十六进制数据在屏幕上显示出来,要求十六进制转换ASCII码用子程序实现。
CONV.ASM
DATASEGMENT
BUFDB0ABH,0CDH,0DEH,01H,02H,03H
DB3AH,4BH,5CH,6FH
*****************************
MOVCX,10
LEABX,BUF
MOVAL,[BX]
CALLHEX2ASC;
调用十六进制转换ASCII码子程序
******显示ASCII码*******
PUSHCX
MOVCX,DX
MOVDL,CH;
显示高位
MOVDL,CL;
显示低位
MOVDL,'
'
;
显示空格
MOVAH,2
POPCX
INCBX
LOOPAGAIN
********************************
返回dos
*******十六进制转换ASCII码子程序********
HEX2ASCPROCNEAR
MOVDH,AL
MOVCL,4
SHRDH,CL
CMPDH,9
JBENEXT1
ADDDH,7
NEXT1:
ADDDH,30H
MOVDL,AL
ANDDL,0FH
CMPDL,9
JBENEXT2
ADDDL,7
NEXT2:
ADDDL,30H
HEX2ASCENDP