版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息管理学院学生实验报告学生姓名学号同组人无实验项目实验地点实验仪器台号指导教师实验日期及节次”必修口选修一、实验综述1、实验目的及要求熟练DUBUG的使用利用DEBUG学习8086CPU的指令练习各指令的使用,将实验过程中的表格在计算机上进行操作,同时填写所给出的表格中的内容,并在实验之前预习并填好所预期的结果,把结果进行对比。2、实验仪器、设备或软件计算机一台DEBUG软件二、实验过程(实验步骤、记录、数据、分析)1.实验内容一数据传送:对以下程序段,写出每条指令执行的预期结果和实际结果。指令序列预期结果执行结果Moval,4Al=04hAl=04hMovcx,0ffhCx=00ffhCx=00ffhMovsi,200hSi=0200hSi=0200hMovbyteptr[si],0ah[200]=0ahds:[0200]=0ahMovwordptr[si+2],0bhDs:[0202]=0bhDs:[0203]=00hDs:[0202]=0bhDs:[0203]=00h用-a汇编指令实现给al,cx,si的赋值即得到执行结果,后两步的操作如下截图
QB1A:0118novbyteptrPtH»=00Q4bx=aaaack=b0ffdk=00sosf=ffeeBF=aaaasi=02013I)£=SB1AEG=BB1AGS=0BlfiCS=0BlfiIP=0113NUUPElFLMZNeBlA:Q1130744320600MOUMORDFIB[SI+02],00aBRd2002056B1A:020»»A4BB32E381C-p-a6B1A:SUBmouuopdptrfsi+2],0beBiA:012Oktnx=0004BX=9999CX=00FFDX=3S3S£P=FFEEBP=aasa£1=0200I)S=0B1AES=0B1ASS=0BlfiCS=0B1AIP=0118NUUPElPLNZNEIB1A:0118CG040AMOUBVTEPTB[SI],0APd2002050E1仙:@2自厢康计4BHR■旧39-通过观察实验结果可知wordptr和byteptr在内存中占的字节是不同的,前者改变两个字节,而后者则只改变一个字节。指令序列Movax,1234h指令序列Movax,1234hMovbx,5678hXchgax,bxXchgah,alDs:100处的数据依次为:Movbx,100hMoval,03hXlat预期结果ax=1234hbx=5678hax=5678h,bx=1234hah=78h,al=56h,0B,1B,2C,3C
bx=0100hal=03hal=2ch执行结果ax=1234hbx=5678hax=5678h,bx=1234hah=78h,al=56hbx=0100hal=03hal=2ch2.实验内容一堆栈操作:R命令使sp=100h,ss=2000hSp=0100hSs=2000hSp=0100hSs=2000hmovax,0a0bhAx=0a0bhAx=0a0bhPushaxSp=00feh,ax中的数据存储到哪几个存储单元?00feh00ffhSp=00feh,存储到00feh,00ffh两个存储单元movbp,0fchMovsi,2hMovcl,[bp][si]Cl=0bhCl=0bhPopbxSp=0100h,bx=0a0bhsp=0100h,bx=0a0bhLEAsi,[bp][si]Si=00fehSi=00fehbp,fcsi,2在此处进行操作时,一开始由于未能把握堆栈的查看操作应该使用ss的段地址,使查看时使用默认的dsbp,fcsi,20B1A:&12?FIBtA:R12ftngclUbpMsiJ0B1A:0L2C-t3EX=0Q90S=0B1AES=0BLACX=B0FFDX=000QSP=0BFEEX=0Q90S=0B1AES=0BLACX=B0FFDX=000QSP=0BFESS=B20f»CS=0BlflIP=0127HOUSI,0BU2BP=B0FCEl=0206DI=0009PLHZNAFONCX=0AHR胴工明叫S=0B1AES=0E1AB1A:012A8A0ACX=fiHFFD«=HWHRSP=P0FFSS=Q20»CS=0blA1P=012ANOUCL.[BP+SJ)HP=BHFCDINUUPElTTFM^TiAPONCSS:II;X=0AQBE*=施丽II;X=0AQBE*=施丽S=0B1AES=0B1AB1A:BL2C区阿42"DX=000QSP=00FESS=B200CS=0BlflIP^BtZCADD计BP=00FCSI=9002DI=0009NUUPElPLNZNAPONC再查看结果用一dss:00fe命令,因为堆栈的栈顶是00fe,而堆栈段的内容是存储在以ss为段地址的段寄存器中。实验内容一算术运算指令序列预期结果执行结果Moval,0fbhAl=fbhAlfh
Addal,07hAl=02hOF,SF,ZF,AF,PF,CF0,0,1,1,0,1Al=02h0,0,1,1,0,1Movwordptr[200],4652h目的操作数物理地址=13cf0h执行后相应内存单兀的值=4652h物理地址=0ba30h[200]=52h,[201]=46hMovbx,1fehBx=01fehBx=01fehAddal,blAl=00hBL=fehOF,SF,ZF,AF,PF,CF0,0,1,1,1Al=00h,bl=feh0,0,1,1,1,1Adcwordptr[bx+2],f0f0h目的操作数物理地址=13cf0h执行后相应内存单兀的值=3743h目的操作数物理地址=0ba30h执行后相应内存单元的值=3743h=-a・0B1A:0133mouuordptr[200],46520B1A:0139-tX=0A02BX=0A0BCX=000BDX=0000SP=0100BP=00S=0B1AES=0BlfjSS=0200CS=0BlfiIP=0139NUUB1A:013921B4"l£CDAND[SI+CD3E],SId200205B1A:020052460B00381CAAA2aBBBt一300一BX=01FEE=SBiAX=0A02S=BBiAAAA2aBBBt一300一BX=01FEE=SBiAX=0A02S=BBiABlfi:013C00D8CX=000BSS=0200DX=0000SP=0100CS=0B1AIP=B13CADDAL,BLBP=00NUUX=0A00BX=01FES=SBiAES=0B1AEX=0A00BX=01FES=SBiAES=0B1AE“血3EF6C28DBP=00NUUSS=0200CS=0B1AIP=B13E
IggTDL皿此段操作中,在预期结果中对目的操作数的预测会与实际的有所偏差,因为段寄存器的代码会有所不同,跟实际的有所区别。指令序列预期结果执行结果Movax,8090hMovbx,1020hCmpbx,axMovbx,8090hCmpbx,axCF=1Cf=0如何通过标志位判断两数大小(分带符号数,无符号数两种情况)Cf=1有溢出Cf=0无溢出
指令序列预期结果执行结果Moval,0b4hAL=b4hAl=b4hMovbl,11hBL=11hBl=11hMulblAX=0bf4h,BL=11hAx=0bf4h,bl=11hMovcl,11hCL=11hCl=11hMoval,0b4hAL=b4hAl=b4hImulclAX=faf4hAx=faf4h所有的操作都是用一a命令进行执行,结果则用一t跟踪命令查看。这个表格中的操作执行时查看等操作还是容易的,只是在做预期结果时对有符号数的乘法相对来说比较复杂,不过经过课堂讲解还是能知道怎么做,但是还是对为什么要那样做有点疑问,比如为什么要取补码,用补码运算得到结果后又要将其和负号一起再运算一下。指令序列预期结果执行结果Movax,0400hAX=0400hAx=0400hMovbl,0b4hBL=b4hBl=b4hDivblAL=05hAH=7chBL=b4hBl=b4hMovax,8400hAX=8400hAx=8400hCWDDX=ffffhAX=8400hDx=ffffhax=8400hmovbx,2hBX=2hBx=0002hIdivbxDX=0000hAX=c200hBX=0002hDx=0000hax=c200hbx=0002h在这个表格中,操作基本跟上个表格的实质并无太大差别,只是这个是除法而已在对预期结果进行预算时,可以直接将参加运算的十六进制除数和被除数化为十进制的数进行运算,得到的除数和余数再化为16进制,放入相应的存储区域。■给ds:200h起始的8个存储单元依次赋值为:11h,22h,33h,44h,55h,66h,77h,88h;给ds:210h起始的8个存储单元依次赋值为:0efh,0cdh,0abh,89h,67h,45h,23h,01h。■按低字节在低地址,高字节在高地址原则,则DS:200h起始的8个单元数据可表示为一个64位数据X,8877665544332211h,同理DS:210起始的8个单元可表示另一个数据Y。设计一段程序代码,实现X=X—Y。答:用堆栈实现,设置两个堆栈1和2,一个存放x的值一个存放y的值,先将高位的数先压入栈内,这样栈顶便是最低位的数,将cf标志位置为0,每次取一个字节进行相减,同时cf也参加运算,得到的结果再另外压入一个栈3,然后将栈3的数出栈,便得到X-Y的值,再将其压入原先的存放x的值的栈。只是想到这一种思路,具体怎么写代码就不知道了。若两数都是无符号数,两数相减是否溢出?若两数都是带符号数,两数相减是否溢出?如果是有符号数且无溢出,结果是多少,是正还是负数,如何判断的答:当两数是无符号数时,相减不会溢出。若两数都是带符号数,两数相减分情况讨论:同号相减不会溢出;异号相减,结果符号与减数符号相同则溢出。有符号数且无溢出,相减后的结果便是所得结果,通过最高位的值判断是正数还是负数,若最高位为0则结果为正数否则为负数。指令序列预期结果执行结果Movax,0400hAX=0400hAx=0400hMovbl,0b4hBL=b4hBl=b4hDivblAL=05AH=7cBL=b4hBl=b4hMovax,8400hAX=8400hAX=8400hCWDDX=fffffhAX=8400hDX=fffffhAX=8400hmovbx,2hBX=0002hBX=0002hIdivbxDX=0000hAX=c200hBX=0002hDX=0000hAX=c200hBX=0002h三、总结与体会通过标志位判断两数大小(分带符号数,无符号数两种情况)1.当是带符号的数,通过of,sf两个标志位进行判断具体分析如下:当OF=0,SF=0时,目的操作数〉源操作数当OF=1,SF=1时,目的操作数〉源操作数当OF=0,SF=1时,目的操作数<源操作数当OF=1,SF=0时,目的操作数<源操作数2当是无符号数时,则可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省佛山市普通高中高三教学质量检测(一)语文试题(含答案)
- 矿山生态修复合同(2篇)
- 2025年冀教版八年级历史下册月考试卷
- 智慧城市资源共享合同(2篇)
- 2025年冀少新版八年级地理下册月考试卷含答案
- 2025年外研版七年级历史下册阶段测试试卷
- 2025年安徽工业职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年天津电子信息职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年四川托普信息技术职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年南通师范高等专科学校高职单招职业适应性测试近5年常考版参考题库含答案解析
- 电力沟施工组织设计-电缆沟
- 《法律援助》课件
- SLT824-2024 水利工程建设项目文件收集与归档规范
- 锅炉本体安装单位工程验收表格
- 一种基于STM32的智能门锁系统的设计-毕业论文
- 妊娠合并强直性脊柱炎的护理查房
- 2024年山东铁投集团招聘笔试参考题库含答案解析
- 儿童10岁生日-百日宴-满月酒生日会成长相册展示(共二篇)
- 《绘本阅读与指导》课程教学大纲
- 员工离职登记表(范本模板)
- 2023人教版(PEP)小学英语(三、四、五、六年级)词汇及常用表达法(课本同步)
评论
0/150
提交评论