版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:****************学号:**********姓名:*****目录实验一···········································3实验二············································7实验三···········································12实验四···········································22
实验一Debug程序的使用实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运营汇编语言源程序。2、掌握8086/8088的寻址方式及多字节数据的解决方法。实验内容1、运用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。规定:本次实验的内容均在DEBUG下完毕,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运营和结果检查。实验过程和程序实验内容一:eds:0200E71A3F00eds:0204C4E56B00实验内容二:直接寻址方式MOVAX,[0200]MOVBX,[0202]ADDAX,[0204]ADCBX,[0206]MOV[0208],AXMOV[020A],BX(2)寄存器间接寻址方式MOVSI,0200HMOVDI,0204HMOVBX,0208HMOVAX,[SI]MOVDX,[SI+2]ADDAX,[DI]ADCDX,[DI+2]MOV[BX],AXMOV[BX+2],DX实验结果(涉及必要的截图)实验内容一:输入数据:显示数据:实验内容二:(1)直接寻址方式程序段编辑:反汇编:运营:结果在DS:0208单元中为00AB00ABH(2)寄存器间接寻址方式程序段编辑:反汇编:运营:结果高字存放在dx中,低字存放在ax中(结果为00AB00ABh)实验体会通过本实验,实践debug程序中的命令,并在debug下调试运营汇编语言源程序。在实践过程中,解决如何把数据录入存储单元、debug命令如何使用等问题后,知道存数据例如1234进存储单元时要3412存,尚有掌握了寄存器的寻址方式。
实验二汇编语言程序设计(顺序、循环)实验目的1、掌握顺序和循环程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运营8086/8088汇编语言程序的过程。实验内容1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完毕以下功能:①计算表达式值(V–(X*Y+Z-720))/X;②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。2、求一个班50名学生成绩的平均值(附加题:最大值和最小值,并将结果显示出来)3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:查找中间是否有‘asm’子串。假如有,输出‘Yes’;否则,输出‘No’)。实验过程和程序(注:附加题没有做)实验内容一:X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完毕以下功能:①计算表达式值(V–(X*Y+Z-720))/X;②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。Datasegmentxdw?ydw?zdw?vdw?sum1dw?sum2dw?DataendsCodesegmentassumecs:code,ds:datastart:movax,datamovds,ax movax,ximulymovcx,axmovbx,dxmovax,zcwdaddcx,axadcbx,dxsubcx,720sbbbx,0movax,vcwdsubax,cxsbbdx,bxidivxmovsum1,axmovsum2,dxmovah,4chint21hCodeendsendstart实验内容二:求一个班50名学生成绩的平均值(为了方便,只设立了5个学生数据)datasegmentgradedw90,80,80,70,60;平均数76dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axxorax,axmovcx,5movbx,offsetgradeagain:addax,[bx]addbx,2loopagainmovcx,5cwdidivcxmovah,4chint21hcodeendsendstart实验内容三:从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串datasegmentbufferdb50db?db50dup('$')crdb0ah,0dh,"$"dataendscodessegmentassumecs:codes,ds:datastart:movax,datamovds,axinput:movah,10leadx,bufferint21hleadx,crmovah,9int21houtput:leadx,buffer+2movah,9int21hmovah,4chint21hcodesendsendstart实验结果(涉及必要的截图)实验内容一:设x=156,y=10,z=220,v=2023,则sum1=0006h,sum2=0004h在ax中看sum1,在dx中看sum2实验内容二:预先设立的数据求得平均数为76,在ax中查看,即ax=004Ch实验内容三:实验体会通过本实验,将课本上学到的算术运算类指令、变量定义伪指令、存储单元、DOS0AH号功能(字符串输入)和DOS09H功能(字符串输出)等在实验中实现。在实现过程中,解决碰到的问题(符号扩展、定义的数组存储空间地址、字符串如何输入输出等)后,对上述知识有了更深的了解,并掌握实现它。
实验三汇编语言子程序设计(分支、子程序)实验目的1、掌握分支和子程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运营8086/8088汇编语言程序的过程。3、通过汇编语言了解高级语言的参数传递等知识。实验内容1、BL中的只有一位为1。编写程序测试,并输出提醒信息“TheXBitis1”,规定:地址表和转移表。2.编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)。规定通过堆栈(寄存器、内存)传送所有参数。3.实践CAsm的转换过程。实验过程和程序实验内容一:BL中的只有一位为1。编写程序测试,并输出提醒信息“TheXBitis1”(1)转移表;转移表,bl左到右1-8位DATASSEGMENTstr1db'the1bitis1',0dh,0ah,'$'str2db'the2bitis1',0dh,0ah,'$'str3db'the3bitis1',0dh,0ah,'$'str4db'the4bitis1',0dh,0ah,'$'str5db'the5bitis1',0dh,0ah,'$'str6db'the6bitis1',0dh,0ah,'$'str7db'the7bitis1',0dh,0ah,'$'str8db'the8bitis1',0dh,0ah,'$'DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmovbl,00010000bmovcx,8movsi,0again:shlbl,1jcnextaddsi,3loopagainnext:addsi,offsetjmptablejmpsijmptable:jmpnearptrl1jmpnearptrl2jmpnearptrl3jmpnearptrl4jmpnearptrl5jmpnearptrl6jmpnearptrl7jmpnearptrl8l1:leadx,str1jmpoutputl2:leadx,str2jmpoutputl3:leadx,str3jmpoutputl4:leadx,str4jmpoutputl5:leadx,str5jmpoutputl6:leadx,str6jmpoutputl7:leadx,str7jmpoutputl8:leadx,str8output:movah,9int21hMOVAH,4CHINT21HCODESENDSENDSTART(2)地址表;地址表,bl左到右依次是第1-8位DATASSEGMENTstr1db'the1bitis1',0dh,0ah,'$'str2db'the2bitis1',0dh,0ah,'$'str3db'the3bitis1',0dh,0ah,'$'str4db'the4bitis1',0dh,0ah,'$'str5db'the5bitis1',0dh,0ah,'$'str6db'the6bitis1',0dh,0ah,'$'str7db'the7bitis1',0dh,0ah,'$'str8db'the8bitis1',0dh,0ah,'$'addrtabledwshow1,show2,show3,show4,show5,show6,show7,show8DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmovbl,00001000bmovcx,8movsi,0again:shlbl,1jcnextaddsi,2loopagainnext:jmpaddrtable[si]show1:leadx,str1jmpoutputshow2:leadx,str2jmpoutputshow3:leadx,str3jmpoutputshow4:leadx,str4jmpoutputshow5:leadx,str5jmpoutputshow6:leadx,str6jmpoutputshow7:leadx,str7jmpoutputshow8:leadx,str8jmpoutputoutput:movah,9int21hMOVAH,4CHINT21HCODESENDSENDSTART实验内容二:编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)(1)堆栈传递参数;z=x*y+x-y,x、y、z为有符号数,堆栈传递DATASSEGMENTxdw5ydw2zdw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXsubsp,2pushypushxcallcalpopzmovbx,zMOVAH,4CHINT21Hcalprocpushbpmovbp,sppushaxpushbxmovax,[bp+4]movbx,[bp+6]imulbxaddax,[bp+4]adcdx,0subax,[bp+6]sbbdx,0mov[bp+8],axpopbxpopaxpopbpret4calendpCODESENDSENDSTART(2)寄存器传递参数;z=x*y+x-y,x、y、z为有符号数,寄存器传递DATASSEGMENTxdw5ydw2zdw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmovax,xmovbx,ycallcalmovz,axMOVAH,4CHINT21Hcalprocmovcx,aximulbxaddax,cxadcdx,0subax,bxsbbdx,0retcalendpCODESENDSENDSTART(3)内存传递参数;z=x*y+x-y,x、y、z为有符号数,内存传递DATASSEGMENTxdw5ydw2zdw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXcallcalMOVAH,4CHINT21Hcalprocmovax,ximulyaddax,xadcdx,0subax,ysbbdx,0movz,axretcalendpCODESENDSENDSTART实验内容三:实践C—>ASM的转换过程_TEXT SEGMENT_c$=-32 ;size=2_b$=-20 ;size=2_a$=-8 ;size=2_main PROC ;COMDAT;4:voidmain(){ push ebp mov ebp,esp sub esp,228 ;000000e4H push ebx push esi push edi lea edi,DWORDPTR[ebp-228] mov ecx,57 ;00000039H mov eax,- ;ccccccccH repstosd;5:;6: shorta,b,c;;7:a=1; mov eax,1 mov WORDPTR_a$[ebp],ax;8: b=a+1; movsx eax,WORDPTR_a$[ebp] add eax,1 mov WORDPTR_b$[ebp],ax;9: c=a+b; movsx eax,WORDPTR_a$[ebp] movsx ecx,WORDPTR_b$[ebp] add eax,ecx mov WORDPTR_c$[ebp],ax;10:;11:;12:} xor eax,eax pop edi pop esi pop ebx mov esp,ebp pop ebp ret 0_main ENDP_TEXT ENDS实验结果(涉及必要的截图)实验内容一:转移表:设bl=00010000b(2)地址表:设bl=00001000b实验内容二:设x=5,y=2,则z=13(000D),结果在ax堆栈传递参数(结果在bx中查看)(2)寄存器传递参数(结果在ax中查看)(3)内存传递参数(结果在ax中查看)五、实验体会通过本实验,让我更加进一步了解地址表和转移表、子程序和从C输出汇编文献等知识,通过实现地址表与转移表加深了对汇编寻址方式的了解;实现子程序,掌握主程序如何调用子程序,及子程序与主程序之间的参数传递方式;用VS实现C->ASM后,对C或C++有了新的结识。
实验四汇编语言高级编程专题实验目的1、汇编语言宏程序设计;2、掌握中断服务子程序的编写。3、汇编语言与高级语言的混编。实验内容1、编写一个宏,求三个数的最小数,原型为:MIN3x,y,z,min2、挂接1CH中断,正计时60秒后退出。规定屏幕显示0-59的秒数。3、VC++中编写内联汇编,将字节数组的每个元素高低四位互换。chardbyte[]={0x34,0x45,0x56,0x67,0xaf};实验过程和程序编写一个宏,求三个数的最小数,原型为:MIN3x,y,z,minmin3macrox,y,z,minmovax,xcmpax,yjbenextmovax,ycmpax,zjbedonenext:cmpax,zjbedonedone:movmin,axendmDATASSEGMENTxdw2ydw4zdw3mindw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmin3x,y,z,minMOVAH,4CHINT21HCODESENDSENDSTART2、挂接1CH中断,正计时60秒后退出。规定屏幕显示0-59的秒数。INTNOEQU1CHDATASEGMENTOLDISRDW?,?TIMERDB100COUNTERDW0ISDONEDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0MOVES,AXxorcx,cx;PROTECTMOVAX,ES:[INTNO*4]MOVOLDISR[0],AXMOVAX,ES:[INTNO*4+2]MOVOLDISR[2],AX;SETNEWISRMOVWORDPTRES:[INTNO*4],OFFSETISRMOVWORDPTRES:[INTNO*4+2],SEGISR;WAITHEREWAITHERE:CMPISDONE,1JNZWAITHEREEXIT:;RESTOREMOVAX,OLDISR[0]MOVES:[INTNO*4],AXMOVAX,OLDISR[2]MOVES:[INTNO*4+2],AXMOVAX,4C00HINT21HISRPROCFARPUSHDXPUSHAXMOVAX,DATAMOVDS,AXSTI;便于中断嵌套INCTIMER;--------判断是否输入a-----------movah,0bhint21horal,aljznextMOVAH,8;不显示输入的字符 INT21H CMPAL,'a' JNEnextMOVAH,2;换行MOVDL,10INT21H;MOVCOUNTER,0;从起一行计时时从0开始计时,注释掉则从起一行继续旧时间计时next:CMPTIMER,1000/55JBDONEMOVTIMER,0MOVAH,2MOVDL,13INT21H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度外贸服装品牌授权及产品销售合同3篇
- 二零二五年度矿山开采土石方剥离与综合利用合同3篇
- 2024年中国片状模塑料市场调查研究报告
- 2024年中国渔具用钢丝绳市场调查研究报告
- 二零二五年度林业产业发展竞业禁止模板木方交易协议书3篇
- 2025年度化工废料处理服务合同6篇
- 2024年国珍宴白酒项目可行性研究报告
- 《交流微电网能量管理系统控制策略与软件开发》
- 2024年汝南县人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年中国套管帽市场调查研究报告
- 球磨机安全检查表分析(SCL)+评价记录
- 学习会计基础工作规范课件
- 双面埋弧焊螺旋钢管公称外公壁厚和每米理论重量
- 富士施乐VC2265打印机使用说明SPO
- 医院工会经费使用与管理办法、制度规则
- 服务态度决定客户满意度试题含答案
- 中学历史教育中的德育状况调查问卷
- 教科版四年级科学上册全册复习教学设计及知识点整理
- 重庆万科渠道制度管理办法2022
- 上海黄金交易所贵金属交易员题库
- 蒸汽管道设计表(1)
评论
0/150
提交评论