版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、555_,汇编实验报告例文 课程编号: b080103020 汇编语言程序设计 实验报告 姓 名 学 号 班 级 指 导 教 师 刘莹 实 验 名 称 数据传送指令,逻辑指令、跳转指令与分支程序设计,逻辑指令、跳转指令与分支程序设计 开 设 学 期 1 2 0 1 4 4 - - 1 2 0 1 5 5 学 第 二 学 期 开 设 时 间 第 第 6 16 周 周 第 第 8 18 周 报 告 日 期 评 定 成 绩 评 定 人 评 定 日 期 东北大学软件学院 实验 1 数据传送指令 实验目的: 了解和掌握 mov、push、pop、xchg 四条指令的作用和在编程中的用法。 实验内容: (
2、)采用立即数寻址方式将19e0h,3f56h,0af37h,9a81h分别送给eax、ebx、ecx、edx四个寄存器。 记录:操作前 eax= 00000000h 、 ebx= 7ffde000h 、 ecx= 0012ffb0h 、 edx= 00851005h 操作后 eax= 000019e0h 、 ebx= 00003f56h 、 ecx= 0000af37h 、 edx= 00009a81h ()采用采用寄存器寻址方式将19e0h送给ebx、ecx、edx三个寄存器。 记录:操作前 eax= 00000000h 、 ebx= 7ffd8000h 、 ecx= 00000000h 、
3、 edx= 00881005h 操作后 eax= 000019e0h 、 ebx= 000019e0h 、 ecx= 0012ffb0h 、 edx= 000019e0h ()对eax、ebx、ecx、edx四个寄存器进行出入堆栈的操作。 ()将eax、ebx、ecx、edx四个寄存器的内容依次压入堆栈中,注意观察栈指针寄存器和堆栈内容的变化。 记录: 压入eax前 esp= 0012ffc4 , (esp)= 7c44fa10h 压入eax后 esp= 0012ffc0 , (esp)= 00000000h 压入ebx前 esp= 0012ffc0 , (esp)= 00000000h 压入
4、ebx后 esp= 0012ffbc , (esp)= 7ffd8000h 压入ecx前 esp= 0012ffbc , (esp)= 7ffd8000h 压入ecx后 esp= 0012ffb8 , (esp)= 0012ffb0h 压入edx前 esp= 0012ffb8 , (esp)= 0012ffb0h 压入edx后 esp= 0012ffb4 , (esp)= 7c92e514h ()将堆栈中的内容依次弹出到eax、ebx、ecx、edx四个寄存器, 注意观察栈指针寄存器和堆栈内容的变化。 实验结果: (1) ()记录:操作前 eax= 00000000h 、 ebx= 7ffde
5、000h 、 ecx= 0012ffb0h 、 edx= 00851005h 操作后 eax= 000019e0h 、 ebx= 00003f56h 、 ecx= 0000af37h 、 edx= 00009a81h ()记录:操作前 eax= 00000000h 、 ebx= 7ffd8000h 、 ecx= 00000000h 、 edx= 00881005h 操作后 eax= 000019e0h 、 ebx= 000019e0h 、 ecx= 0012ffb0h 、 edx= 000019e0h () () 记录: 压入eax前 esp= 0012ffc4 , (esp)= 7c44fa
6、10h 压入eax后 esp= 0012ffc0 , (esp)= 00000000h 压入ebx前 esp= 0012ffc0 , (esp)= 00000000h 压入ebx后 esp= 0012ffbc , (esp)= 7ffd8000h 压入ecx前 esp= 0012ffbc , (esp)= 7ffd8000h 压入ecx后 esp= 0012ffb8 , (esp)= 0012ffb0h 压入edx前 esp= 0012ffb8 , (esp)= 0012ffb0h 压入edx后 esp= 0012ffb4 , (esp)= 7c92e514h ()记录:弹出到eax前 esp
7、= 0012ffb4 , (esp)= 7c92e514h 弹出到eax后 esp= 0012ffb8 , (esp)= 7c92e514h 弹出到ebx前 esp= 0012ffb8 , (esp)= 0012ffb0h 弹出到ebx后 esp= 0012ffbc , (esp)= 7ffd7000h 弹出到ecx前 esp= 0012ffbc , (esp)= 7ffd7000h 弹出到ecx后 esp= 0012ffc0 , (esp)= 00000000h 弹出到edx前 esp= 0012ffc0 , (esp)= 00000000h 弹出到edx后 esp= 0012ffc4 ,
8、(esp)= 7c44fa10h 实验 2 逻辑指令、跳转指令与分支程序设计 实验目的: 了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的功能和作用,以及此类指令的使用方法。 实验内容: 具体了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的使用和在使用时应注意的问题,学习分支型程序设计的一般方法。 ()在debug系统状态下,分别编制、调试并记录以下逻辑指令程序段的每一条指令的运行情况: () mov al,41 or al,20 () mov al,66 and al,0df () mov eax,5678 xor eax,eax () mov eax,0ff00 not eax
9、 () mov eax,1234 test eax,1 test eax,2 test eax,4 test eax,8 test eax,10 test eax,20 test eax,40 test eax,80 (2) 已知data单元开始存放三个带符号数,编制程序,检查三个数据是否同号,若同时为正,则在显示器上显示"+';同时为负,则显示"-';否则显示空格" '。 要求:分别用三组数据(同时为正,同时为负,异号)调试程序,验证程序的正确性。 实验结果: test指令的作用是_将原操作数与目的操作数相与,但结果不送会目的操作数,只改
10、变标志位,并不修改操作数_。 实验 3 算术运算类指令、移位指令及循环程序设计 实验目的: 了解和掌握加、减、乘、除指令的在程序设计中的用法和应注意的问题,了解和掌握移位指令的功能、作用和方法。了解和掌握循环控制类指令的功能、作用和方法。学会循环程序设计的方法。学习汇编语言输出输入语句的设计。 实验内容: 具体了解和掌握算术类指令、移位指令和循环控制类指令的使用,以及在使用时应注意的问题,学习循环程序设计的一般方法。 ()在debug系统状态下,分别编制、调试并记录以下加、减程序段的每一条指令的运行情况,查看寄存器的结果: () mov eax,2389 eax=00000955h mov e
11、bx,0cedfh ebx=0000cedfh add eax,ebx eax= 0000d834h ebx=0000cedfh () mov eax,2389 eax=00000955h mov ebx,0cedfh ebx=0000cedfh sub eax,ebx eax=ffff3a76h ebx=0000cedfh () mov eax,2389 eax=00000955h mov ebx,0cedfh ebx=0000cedfh add ah,bh ah=d7 bh=ce add al,bl al=34 bl=df () mov eax,2389 eax=00000955h mov
12、 ebx,0cedfh ebx=0000cedfh add ah,bh ah=d7 bh=ce adc al,bl al=34 bl=df efl = 00000213 ()在debug系统状态下,分别编制、调试并记录以下乘、除程序段的每一条指令的运行情况: () mov al,23 al=17h mov bl,0ceh bl=ceh mul bl ax=1282h ov=1 () mov ax,2389 ax=0955h mov bx,0cedfh bx=cedfh mul bx dx= 078ah ax=870bh cf=1 () mov ax,2389 ax=0955h mov bl,0
13、ceh bl=0ceh div bl ah=7bh al=0bh () mov ax,2389 ax=0955h mov dx,0856 dx=0358h mov bx,0cedfh bx=cedfh div bx ax=0423h dx=44d8h (3)在debug系统状态下,分别编制、调试并记录以下移位指令程序段的每一条指令的运行情况: () mov eax,420 eax=000001a4h shl eax,1 cf=0 eax=00000348h () mov eax,240 eax=000000f0h mov cl,4 cl=04h shl eax,cl cf=0 eax=0000
14、0f00h () mov eax,8000 eax=00001f04h mov cl,4 cl=04h shr eax,cl cf=0 eax=000001f4h () mov eax,8000 eax=00001f04h mov cl,4 cl=04h sar eax,cl cf= 0 eax=000001f4h () mov eax,8086 eax=00001f96h mov cl,4 cl=04h rol eax,cl cf=0 eax=00001f96h () mov eax,8086 eax=00001f96h mov cl,4 cl=04h ror eax,cl cf=0 eax
15、=60001f9h () mov eax,8086 eax=00001f96h mov cl,4 cl=04h rcl eax,cl cf=0 eax=0001f960h () mov eax,8086 eax=00001f96h mov cl,4 cl=04h rcr eax,cl cf=0 eax=c00001f9h (5) 已知data单元开始存放一组无符号的字节数据,数据长度在cnt单元存放。编制程序,检查该组数据中是否存在数据100,若存在,则在显示器上显示"y',否则显示"n'。 (6) 编制在屏幕上显示九九表的程序。 实验结果: rol与rcl
16、、ror与rcr的区别在于rol和ror是将寄存器中的内容直接进行移位,而rcl和rcr是将寄存器中的内容与_ cf_中的内容一起进行移位,因此参加移位的数据比原来的数据位数_ 多一_。 一、 实验总结: 在汇编语言的学习之中,汇编语言程序设计上机实验是必不可少的学习环节之一,也是检验汇编语言知识的手段之一。 通过上机练习,可以加深对课程知识的理解和掌握,通过本次实验,能够熟练运用数据传送指令,了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的功能和作用,以及此类指令的使用方法。 了解和掌握加、减、乘、除指令的在程序设计中的用法和应注意的问题,了解和掌握移位指令的功能、作用和方法。了解和掌握循环控制类指令的功能、作用和方法。学会循环程序设计的方法。学习汇编语言输出输入语句的设计。 加深了对循环程序设计的理解,掌握单重和多重循环的程序设计,掌握子程序给程序编写带来的方便。 因此在本次实验中,应做到以下几点: (1)实验前必须熟练掌握数据传送指令、逻辑指令、跳转指令等指令的功能和作用。能够使用运算指令、位移指令、循环控制指令来灵活地编写出满足要求的代码。 (2)对于实验三,要掌握单重和多重循环指令的使用,熟练的使用寄存器以及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度转学生社团加入协议3篇
- 2024年度市场营销合作协议:义齿加工厂与营销公司合作推广产品3篇
- 2024年度商业特许经营合同标的及特许经营范围2篇
- 2024年度住院医师规范化培训学术研究合作协议3篇
- 2024年度工程建设项目塔吊租赁及安装服务合同2篇
- 2024年度搅拌站购买与销售合同2篇
- 2024年度制片人个人品牌孵化合同3篇
- 2024年度创业投资融资担保合同范本下载3篇
- 2024年度文化旅游产业项目合作协议范本2篇
- 2024年度民间车辆质押贷款服务协议3篇
- 低压不停电换表接插件技术规范
- 2024版乌鲁木齐二手房买卖合同
- 跨学科教学设计-《轴对称图形》
- 脑卒中患者深静脉静脉血栓预防
- 国家开放大学专科《法理学》(第三版教材)形成性考核试题及答案
- 布雷顿森林体系的制度
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- 《庐山的云雾》课件
- 骨科进修汇报课件
- 人教版五年级美术学科试卷(附带答案和考察要点解说)
- 同意降薪协议书
评论
0/150
提交评论