- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
烟台大学光电信息学院微机原理实验烟台大学光电信息学院微机原理实验
PAGE 16
微机原理实验
班级: 09
姓名:
学号:200913503
实验一 熟悉宏汇编程序及debug
一.实验目的
1.学习并掌握汇编语言指令寻址方式
2.熟悉在PC机上用DEBUG调试和运行汇编语言指令的过程。
二.实验内容
根据给定寄存器内容及存储单元内容,运行给定指令,观察记录运行结果。
三.给定的寄存器内容和存储单元内容及指令
1、给定的寄存器内容及存储单元内容
(DS)=2000H,(SI)=0002H,(BX)=0100H
(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,
(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H,
2、指令
(1)MOV AX,1200H
(2)MOV AX,BX
(3)MOV AX,[1200H]
(4)MOV AX,[BX]
(5)MOV AX,1100H[BX]
(6)MOV AX,[BX][SI]
(7)MOV AX,1100H[ BX][SI]
四.调试步骤
1.运行DEBUG。
2.用A命令汇编指令(1)
3.按给定寄存器和存储单元内容修改寄存器和存储单元内容。
4.单步运行指令,查看结果
5.重复上述步骤,调试指令(2)——(7)
?
指令寻址方式
源操作数有效地址
源操作数物理地址
指令运行结果(AX)
1
?立即数寻址
?
?
?1200H
2
?寄存器寻址
?
?
?0100H
3
?直接寻址
?1200H
?21200H
?4C2AH
4
?寄存器间接寻址
?0100H
?20100H
?3412H
5
?基址变址寻址
?1200H
?21200H
?4C2AH
6
?寄存器相对殉寻址
?0102H
?20102H
?7856H
7
?基址变址相对寻址
?1203H
?21203H
?65B7H
六.思考题
1、汇编语言指令有哪些寻址方式?用于寻址的寄存器有哪些?
立即数寻址、直接寻址,寄存器寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,基址变址相对寻址。对于16位数据,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP; 对于8位数据,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL
实验二 寻址方式练习及多字节运算程序
一.实验目的
1.学习并掌握数据传送指令和算术运算指令
2.熟悉在PC机上编辑、汇编、连接、调试与运行汇编语言程序的过程。
二.实验内容
实现两个32位无符号数乘法。
三.程序清单
见教材第74页,例4_34。
四.画出程序流程图
五.实验步骤
1.编辑源程序,建立一个以后缀名为.ASM的文件。
2.汇编源程序,检查程序是否有错误,有错时回到编辑状态,修改程序中错误行;无错误继续(3)。
3.连接目标程序,生成可执行程序。
4.DEBUG调试程序,记录如下数据:
(1)记录断点处地址。
(2)记录断点处DS、CS及IP的值。
(3)数据段DS:0~DS:0F的内容,并记录。
六、已知从数据段DATA单元开始存放字节型的带符号数X和Y,请设计计算Y=6X+8的程序。
mydata segment
num1 DW 1200h,3400h
num2 DW 5600h,7800h
mut DW 4 dup(?)
mydata ends
mystack segment para stack stacak
DB 100 dup(?)
mystack ends
mycode segment
assume CS: mycode, DS: mydata, SS: mystack
start: PUSH DS
MOV AX , 0
PUSH AX
MOV AX , mydata
MOV DS , AX
LEA BX , num1
mul32: MOV AX , [BX]
MOV SI , [BX+4]
MOV DI, [BX+6]
MUL SI
MOV [BX+8], AX
MOV [BX+0ah], DX
MOV
文档评论(0)