东北大学汇编实验.doc

上传人:李司机 文档编号:1090832 上传时间:2022-06-23 格式:DOC 页数:10 大小:58KB
返回 下载 相关 举报
东北大学汇编实验.doc_第1页
第1页 / 共10页
东北大学汇编实验.doc_第2页
第2页 / 共10页
东北大学汇编实验.doc_第3页
第3页 / 共10页
东北大学汇编实验.doc_第4页
第4页 / 共10页
东北大学汇编实验.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《东北大学汇编实验.doc》由会员分享,可在线阅读,更多相关《东北大学汇编实验.doc(10页珍藏版)》请在三一办公上搜索。

1、-课程B080103020汇编语言程序设计实验报告*班级指导教师实验名称数据传送、分支与循环构造程序设计实验开设学期2021-2021 第一学期开设时间第1周第10周报告日期2021年11月6日评定成绩评定人评定日期东北大学软件学院实验1 数据传送指令1、 实验目的:了解和掌握 MOV、PUSH、POP、*CHG四条指令的作用和在编程中的用法。、实验要求:采用立即数寻址方式将19E0H,3F56H,0AF37H,9A81H分别送给EA*、EB*、EC*、ED*四个存放器。记录:操作前 EA*=75C59191、 EB*=7FFDE000 、 EC*=00000000、 ED*=00401000

2、操作后 EA*=000019E0、 EB*=00003F56、 EC*=0000AF37、 ED*=00009A81操作过程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov ea*,19E0Hmov eb*,3F56Hmov ec*,0AF37Hmov ed*,9A81Hcall DumpRegse*itmain endpEND main采用采用存放器寻址方式将19E0H送给EB*、EC*、ED*三个存放器。记录:操作前 EA*=75C59191、 EB*=7FFDE000 、 EC*=00000000、 ED*=004010

3、00操作后 EA*=000019E0、 EB*=000019E0、 EC*=000019E0、 ED*=000019E0操作过程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov ea*,19E0Hmov eb*,ea*mov ec*,eb*mov ed*,ec*call DumpRegse*itmain endpEND main对EA*、EB*、EC*、ED*四个存放器进展出入堆栈的操作。将EA*、EB*、EC*、ED*四个存放器的容依次压入堆栈中,注意观察栈指针存放器和堆栈容的变化。记录:压入EA*前 ESP=0018FF9

4、0,ESP=75C5919F压入EA*后 ESP=0018FF8C,ESP=00000000压入EB*前 ESP=0018FF8C,ESP=00000000压入EB*后 ESP=0018FF88,ESP=00000000压入EC*前 ESP=0018FF88,ESP=00000000压入EC*后 ESP=0018FF84,ESP=00000000压入ED*前 ESP=0018FF84,ESP=00000000压入ED*后 ESP=0018FF80,ESP=FFFFC000操作过程中所用到的指令:INCLUDE Irvine32.inc.codemain PROCcall DumpRegsmov

5、 ea*,espcall DumpRegspush ea*call DumpRegspush eb*call DumpRegspush ec*call DumpRegspush ed*call DumpRegse*itmain endpEND main将堆栈中的容依次弹出到EA*、EB*、EC*、ED*四个存放器,注意观察栈指针存放器和堆栈容的变化。记录:弹出到EA*前 ESP=0018FF90,ESP=00000000弹出到EA*后 ESP=0018FF94,ESP=00000000 弹出到EB*前 ESP=0018FF94,ESP=00000000弹出到EB*后 ESP=0018FF98,

6、ESP=00000000 弹出到EC*前 ESP=0018FF98,ESP=00000000 弹出到EC*后 ESP=0018FF9C,ESP=E18A40B7 弹出到ED*前 ESP=0018FF9C,ESP= E18A40B7 弹出到ED*后 ESP=0018FFA0,ESP= FFFFF801 操作过程中所用到的指令:include Irvine32.inc.codemain procmov esi,espcall DumpRegspush ea*mov esi,espcall DumpRegspush eb*mov esi,espcall DumpRegspush ec*mov esi

7、,espcall DumpRegspush ed*pop ed*mov esi,espcall DumpRegspop ec*mov esi,espcall DumpRegspop eb*mov esi,espcall DumpRegspop ea*mov esi,espcall DumpRegse*itmain endpend main3EA* =3F56H,EC* =4690H,利用交换指令交换这两个存放器的容。记录:交换前 EA*= 00003F56 , EC*=00004690 交换后 EA*= 00004690 , EC*=00003F56 操作过程中所用到的指令:Include I

8、rvine32.inc.codemain PROCmov ea*,3F56Hmov ec*,4690Hcall DumpRegs*chg ea*,ec*call DumpRegse*itmain ENDPEND main实验二逻辑指令、跳转指令与分支程序设计、 实验目的:了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的功能和作用,以及此类指令的使用方法。、 实验要求:具体了解和掌握逻辑指令、比较指令、无条件有条件转移类指令的使用和在使用时应注意的问题,学习分支型程序设计的一般方法。在DEBUG系统状态下,分别编制、调试并记录以下逻辑指令程序段的每一条指令的运行情况: mov al,41

9、al=29H or al,20 al=3DH mov al,66 al=42H and al,0df al=00H mov EA*,5678 EA*=0000162EH *or EA*,EA* EA*=00000000H mov EA*,0ff00 EA*=0000FF00H not EA* EA*=FFFF00FFH mov EA*,1234 EA*=000004D2H test EA*,1 EA*=000004D2H SF=0 ZF=1 OF=0 test EA*,2 EA*=000004D2H SF=0 ZF=0 OF=0 test EA*,4 EA*=000004D2H SF=0 ZF

10、=1 OF=0 test EA*,8 EA*=000004D2H SF=0 ZF=1 OF=0 test EA*,10 EA*=000004D2H SF=0 ZF=0 OF=0 test EA*,20 EA*=000004D2H SF=0 ZF=0 OF=0 test EA*,40 EA*=000004D2H SF=0 ZF=1 OF=0 test EA*,80 EA*=000004D2H SF=0 ZF=0 OF=0test指令的作用是_将原操作数与目的操作数相与,但结果不送会目的操作数,只改变标志位,并不修改操作数_。 (2) DATA单元开场存放三个带符号数,编制程序,检查三个数据是否同

11、号,假设同时为正,则在显示器上显示+;同时为负,则显示-;否则显示空格。要求:分别用三组数据同时为正,同时为负,异号调试程序,验证程序的正确性。include Irvine32.inc.datainterray sdword 23h,23h,-23h.codemain proc mov edi,OFFSET interraymov ea*,ediand ea*,80000000hpush ea*mov ea*,edi+4and ea*,80000000hpush ea*mov ea*,edi+8and ea*,80000000hpush ea*pop ea*pop eb*pop ec*jnz

12、L1cmp ea*,eb*jne L2cmp ea*,ec*jne L2mov al,+call WriteChare*itL1: cmp ea*,eb* jne L2 cmp ea*,ec* jne L2 mov al,- call WriteChar e*itL2: mov al, call WriteChar e*itmain endpend main实验三算术运算类指令、移位指令及循环程序设计、 实验目的:了解和掌握加、减、乘、除指令的在程序设计中的用法和应注意的问题,了解和掌握移位指令的功能、作用和方法。了解和掌握循环控制类指令的功能、作用和方法。学会循环程序设计的方法。学习汇编语言

13、输出输入语句的设计。、 实验要求:具体了解和掌握算术类指令、移位指令和循环控制类指令的使用,以及在使用时应注意的问题,学习循环程序设计的一般方法。在DEBUG系统状态下,分别编制、调试并记录以下加、减程序段的每一条指令的运行情况,查看存放器的结果: MOV EA*,2389 EA*=00000955H MOV EB*,0CEDFH EB*=0000CEDFH ADD EA*,EB* EA*= 0000D834H EB*=0000CEDFH MOV EA*,2389 EA*=00000955H MOV EB*,0CEDFH EB*=0000CEDFH SUB EA*,EB* EA*=FFFF3A

14、76H EB*=0000CEDFH MOV EA*,2389 EA*=00000955H MOV EB*,0CEDFH EB*=0000CEDFH ADD AH,BH AH=D7 BH=CE ADD AL,BL AL=34 BL=DF MOV EA*,2389 EA*=00000955H MOV EB*,0CEDFH EB*=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,0

15、CEH BL=CEH MUL BL A*=1282H OV=1 MOV A*,2389 A*=0955H MOV B*,0CEDFH B*=CEDFH MUL B* D*= 078AH A*=870BH CF=1 MOV A*,2389 A*=0955H MOV BL,0CEH BL=0CEHDIV BL AH=7BH AL=0BH MOV A*,2389 A*=0955H MOV D*,0856 D*=0358H MOV B*,0CEDFH B*=CEDFH DIV B* A*=0423H D*=44D8H3在DEBUG系统状态下,分别编制、调试并记录以下移位指令程序段的每一条指令的运行情况

16、: mov EA*,420 EA*=000001A4H shl EA*,1 CF=0 EA*=00000348H mov EA*,240 EA*=000000F0H mov cl,4 CL=04H shl EA*,cl CF=0 EA*=00000F00H mov EA*,8000 EA*=00001F04H mov cl,4 CL=04H shr EA*,cl CF=0 EA*=000001F4H mov EA*,8000 EA*=00001F04H mov cl,4 CL=04H sar EA*,cl CF= 0 EA*=000001F4H mov EA*,8086 EA*=00001F9

17、6H mov cl,4 CL=04H rol EA*,cl CF=0 EA*=00001F96H mov EA*,8086 EA*=00001F96H mov cl,4 CL=04H ror EA*,cl CF=0 EA*=60001F9H mov EA*,8086 EA*=00001F96H mov cl,4 CL=04H rcl EA*,cl CF=0 EA*=0001F960H mov EA*,8086 EA*=00001F96H mov cl,4 CL=04H rcr EA*,cl CF=0 EA*=C00001F9Hrol与rcl、ror与rcr的区别在于rol和ror是将存放器中的

18、容直接进展移位,而rcl和rcr是将存放器中的容与_CF_中的容一起进展移位,因此参加移位的数据比原来的数据位数_多一_。(5) DATA单元开场存放一组无符号的字节数据,数据长度在T单元存放。编制程序,检查该组数据中是否存在数据100,假设存在,则在显示器上显示Y,否则显示N。include Irvine32.inc.dataay word 1,4,8,100t word 4.codemain procmov c*,tL1: mov a*,0 push a* mov b*,ay+a* cmp b*,0064h je L2 mov al,N call WriteChar jmp quit L2

19、: mov al,Y call WriteChar jmp quitquit: pop a* add a*,4LOOP L1e*itmain endpend main(6) 编制在屏幕上显示九九表的程序。include Irvine32.inc.codemain proc mov ed*,0L1: call Crlf mov eb*,1 inc ed*L3: push ed* mov ea*,ed*mul eb* mov esi,ea* pop ed* mov ea*,eb* call WriteDecpush ed* mov al,* call WriteCharpop ed* mov ea

20、*,ed* call WriteDec push ed* mov al,= call WriteChar pop ed* mov ea*,esi call WriteDecpush ed* mov al, call WriteChar pop ed* cmp eb*,9 jz L2 cmp eb*,ed* jz L1inc eb* jmp L3L2:call Crlf e*itmain endpend main考核标准得分1正确理解和掌握实验所涉及的概念和原理20%;2能正确设计程序,运行结果正确30%;3认真记录实验数据,原理及实验结果分析准确20%;4实验过程中,具有严谨的学习态度和认真、踏实、一丝不苟的科学作风10%;5所做实验具有一定的创新性10%;6实验报告规10%。. z.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号