


已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;.东 北 大 学计算机硬件技术基础实验报告班级:机械 0908姓名:学号:20092063实验题目:分支程序设计日期:2011 年 11 月 28 日实验一一、实验目的1) 掌握分支程序的结构;2) 掌握分支程序的设计,调试方法;二、实验内容设有 3 个单字节无符号数存放在buf开始的缓冲区中,编写一个能将他们从大到小重新排序的程序。三、算法描述流程图;.四、实验步骤1. 输入源程序:datasegmentbufdb13,52 ,14dataendscodesegmentassumecs:code,ds:datastart: movax,datamovds,axmovsi,offset bufmoval,si;把 3 个数取到寄存器中movbl,si+1movcl,si+2cmpal,bljaenext1xchg next1: cmpal,bl al,cl;排序,将最大数送al 寄存器jaenext2xchgal,clnext2: cmpbl,cl;将最小数送 cl 寄存器jaenext3xchgbl,clnext3: movsi,al;从大到小依次存回缓冲区movsi+1,blmovsi+2,clmovah,4chint21hcodeendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,经验证运行结果为 34 0e 0d,即 52 14 13,由大到小排列,满足题目要求且无错误。五、实验结果1. 执行emulate 程序, 对源 程序进行调试 , 生 成originalsource code 和emulator:noname.exe_文件,得到如下界面:2.执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,得到如下界面:运行结果为 34 0e 0d,即 52 14 13,由大到小排列,满足题目要求且无错误。六、思考题分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确的地使用条件转移指令。 本程序中, 由于是无符号数的比较, 所以也可以根据一个标志位来判定数的大小, 你能说出那个是标志位吗, 且程序中的 jea指令改用什么指令替换呢?答: 可以根据 cf标志位来判定数的大小。cf=0时, dstsrc当;cf=1时,dstrs。c当 cf=1时,用 jc指令可以实现转移;当cf=0时,用 jnc指令可以实现转移。七、扩展题在 buf 开始的单元里有3 个单字节无符号数,编写程序找出它们中的最小值并存入 min 单元。1输入源程序如下: dsegsegmentbufdb99,72,88mindb0dsegendscodesegmentstart:assumemov mov mov mov mov movcmpcs:cseg,ds,dsegax,dseg ds,ax si,offset buf al,sibl,si+1cl,si+2 al,bl;把 3 个数取到寄存器中;排序,将最大数送 al 寄存器next1:区jaexchg movnext1al,bl min,bl; 排序,将最小数送minnext2:cmpjae xchg mov mov int endsendbl,clnext2 bl,cl min,cl ah,4ch21hcodestart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,结果如下图。经验证运行结果为63 48 58 48,即 99 72 88 ,min 区值为 48,即最小值 72, 无错误。八、实验心得通过此次试验我理解了汇编语言中编程的基本步骤,掌握了分支结构程序设计中准确知道操作结果影响的标志位状态和正确的使用无条件转移指令以及无符号数的比较方法。这个实验,使我认识到直接通过cpu寄存器地址赋值可以大大提高效率,并且让我知道要继续练习熟读汇编语言代码的功能及用法。实验二一、实验目的1) 掌握分支程序的结构;2) 掌握分支程序的设计,调试方法;二、实验内容设有 3 个单字节无符号数存放在从大到小重新排序的程序。buf开始的缓冲区中,编写一个能将他们三、算法描述流程图四、实验步骤(1) ) x、y 异号1. 输入源程序:datasegment;.x db99y db-33z db0dataendscodesegmentassumecs:code,ds:data start:movax,datamovds,axcmpx,0;x 与 0 进行比较jll1;x0 转 l1cmpy,0jll2;y=0,y=0 则 1z,无条件转exitjmpexitl1:cmpy,0;y=0 转 l2 jgel2movz,-1;x0,y0 则-1z,无条件 exitjmpexitl2:movz,0;x,y 异号则 0zexit:movah,4ch int21hcodeendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,经验证当x、y 异号时, z 值为 0,结果满足题目要求且无错误。(2) ) x、y 同为正1. 输入源程序:datasegmentxdb13ydb14zdb0dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axcmpx,0;x 与 0 进行比较jll1;x0 转 l1cmpy,0jll2;y=0,y=0 则 1z,无条件转exitjmpexitl1:cmpy,0;y=0 转 l2 jgel2movz,-1;x0,y0 则-1z,无条件 exit jmpexitl2:movz,0;x,y 异号则 0zexit:movah,4ch int21hcodeendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,经验证当x、y 都大于 0 时, z 值为 1,结果满足题目要求且无错误。(3) ) x、y 同为负1. 输入源程序:datasegmentx db-36y db-12z db0dataendscodesegmentassumecs:code,ds:data start:movax,datamovds,axcmpx,0;x 与 0 进行比较jll1;x0 转 l1cmpy,0jll2;y=0,y=0 则 1z,无条件转exitjmpexitl1:cmpy,0;y=0 转 l2 jgel2movz,-1;x0,y0 则-1z,无条件 exit jmpexitl2:movz,0;x,y 异号则 0zexit:movah,4ch int21hcodeendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。;.3.执行 run 程序,打开程序 aux,选择 memory,查看地址 0710:0000, 经验证当x、y 都小于 0 时, z 值为 -1,结果符合题目要求且无错误。五、实验结果( 1) x、y 异号1. 执行emulate 程序, 对源 程序进行调试 , 生 成originalsource code 和emulator:noname.exe_文件,得到如下界面:2.执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,得到如下界面:经验证当 x、y 异号时, z 值为 0,结果满足题目要求且无错误。(2) ) x、y 同为正1. 执行emulate 程序, 对源 程序进行调试 , 生 成originalsource code 和emulator:noname.exe_文件,得到如下界面:2. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,得到如下界面:经验证当 x、y 都大于 0 时, z 值为 1,结果满足题目要求且无错误。(3) ) x、y 同为负1. 执行emulate 程序, 对源 程序进行调试 , 生 成originalsource code 和emulator:noname.exe_文件,得到如下界面:2. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,得到如下界面:x、y 都小于 0 时, z 值为 -1,结果符合题目要求且无错误。六、思考题本程序中判定符号用的是cmp指令,而用逻辑操作指令也可以。比如,可 以用 and指令,使其进行自身与操作,反映到sf 标志位,还可以用test 指令直接测试最高位,并将结果反映到zf 标志位,然后根据zf 标志位判断。试用 test 指令编之。答:1.输入源程序如下:datasegmentxdb66ydb-100zdb0dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axtestx,80hjnel1testy,80hjnel2movz,1jmp l1: jemovexittest y,80h l2z,-1jmpexitl2:movz,0exit:movah,4chint21hcodeendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,结果如下图经验证运行结果为42 9c 00,即 66 -100 0,x、y 异号, z 值为 0,无错误。七、扩展题如果不采用上述方法判断两数的符号,而采用两数异或的方法判断两数的符号,当两数的符号不相同时,其结果的最高位必定为1;当两数的符号相同时, 其结果的最高位必定为0;在根据其中一数的符号是正还是负决定两数是正数还是负数。请做程序完成。(1) ) x、y 同号1. 输入源程序:dsegsegmentxdb-3ydb-4zdb0dsegendscsegsegmentassumecs:cseg,ds:dsegstart:movax,dsegmovds,axmoval,xmovbl,yxoral,bljsl1jgel2movz,1jmpexitl1:movz,1jmpexitl2:movz,0exit:movintends endah,4ch21hcsegstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,结果如下图。(2) ) x、y 异号1. 输入源程序:dsegsegmentx db5y db-6z db0dsegendscsegsegmentassumecs:cseg,ds:dseg start:movax,dsegmovds,axmoval,xmovbl,yxoral,bljsl1jel2movz,1jmpexitl1:movz,1 jmpexitl2:movz,0exit:movah,4ch int21hcsegendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序aux,选择 memory,查看地址 0710:0000,结果如下图。八、实验心得通过此次试验我理解了汇编语言中编程的基本步骤,掌握了 emu8086软件的基本运用, 调试,对运行结果的简单分析。 能运用基本的汇编语言做一些简单的程序,尤其是对 cmp指令,逻辑指令 test和他对应的 zf指令的熟悉与运用。实验三一、实验目的1) 掌握分支程序的结构;2) 掌握分支程序的设计,调试方法;二、实验内容设有 3 个单字节无符号数存放在buf开始的缓冲区中,编写一个能将他们从大到小重新排序的程序。三、算法描述流程图四、实验步骤1. 输入源程序datasegmentdis0 db input digit 0 !$ dis1 db input digit 1 !$ dis2 db input digit 2 !$ dis3 db input digit 3 !$ dis4 db input digit 4 !$ dis5 db input digit 5 !$ dis6 db input digit 6 !$ dis7 db input digit 7 !$ dis8 db input digit 8 !$ dis9 db input digit 9 !$ dis10 db input character !$ dataendscode segmentassumecs:code,ds:data start: mov ax,datamov ds,axmov ah,1;调用键盘输入 dos 中断;.int21hcmpal,30h;如果输入的是非数字则转m jbmcmpal,39hjamandal,0fhjmpn:如果输入的是数字则转n,al 寄存器保存输入的数m:moval,10;如果输入的是非数字则将al 寄存器送 10n:leabx,tab;根据 al 寄存器的值求转移地址表的地址movah,0shlal,1addbx,axjmpbx;转到地址表中对应的指令去执行exit:movah,4chint21htab:jmpshort p0;地址表jmpshort p1jmpshort p2jmpshort p3jmpshort p4jmpshort p5jmpshort p6jmpshort p7jmpshort p8jmpshort p9jmpshort p10p0:leadx,dis0;显示输入字符 input digit0 !movah,9int21hjmpexitp1:leadx,dis1;显示输入字符input digit1 !movah,9int21hjmpexitp2:leadx,dis2;显示输入字符input digit2 !movah,9int21hjmpexitp3:leadx,dis3;显示输入字符input digit3 !movah,9int21hjmpexitp4:leadx,dis4;显示输入字符input digit4 !movah,9int21hjmpexitp5:leadx,dis5;显示输入字符 input digit5 !movah,9int21hjmpexitp6:leadx,dis6;显示输入字符 input digit6 !movah,9int21hjmpexitp7:leadx,dis7;显示输入字符 input digit7 !movah,9int21hjmpexitp8:leadx,dis8;显示输入字符 input digit8 !movah,9int21hjmpexitp9:leadx,dis9;显示输入字符 input digit9 !movah,9int21hjmpexitp10:leadx,dis10;显示输入字符inputcharacter !movah,9int21hjmpexitcodeendsendstart2. 执行emulate 程序, 对源 程序进行 调试 , 生成originalsource code 和emulator:noname.exe_文件,结果无错误。3. 执行 run 程序,打开程序 aux,选择 memory,查看地址 0710:0000,结果无错误。经验证,输入数字 09 时,显示 input digit0 ! input digit9 ! ;输入其他键时,显示 input character ! ,结果符合题意且正确。五、实验结果1. 执行emulate 程序, 对源 程序进行调试 , 生 成originalsource code 和emulator:noname.exe_文件,得到如下界面:;.2. 执行 run 程序,分别输入数字: “5”和字母“ t”,得到如下界面:经验证,运行结果无错误且符合题意。六、思考题再求相应地址是,程序中使用了shl al ,1 语句,请问这说明了什么? 答:“shl al,1 的命令是指将操作数乘以2,在该程序中,转移指令表中的每条转移指令代码是由两个字节组成的,将al寄存器中的数乘以2 后再与bx 相加,就是对应输入数字的转移指令代码的有效地址。七、扩展题编制程序,判断键盘输入的一个数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文职会计面试题目及答案
- 对外汉语教学课件6
- 跨部门协作沟通平台搭建与使用手册
- 自由浮空载人飞行器项目可行性研究报告
- 圆的角度垂径定理 小结练习(含解析)
- 年产1.5万台高精度伺服驱动系统项目可行性研究报告
- 2025年建筑设计师面试攻略与实战模拟题答案
- 2025年法律职业资格考试模拟题及答案解析民法篇
- 2025年如何准备物资储备管理局招聘笔试成功考生的经验
- 2025年物资储备行业信息技术知识要点与模拟题解析
- 隧道二衬安全注意事项
- 2025年卫生健康行业经济管理领军人才试题
- 绿色矿山培训课件
- 2025-2030中国香皂市场销售动态及竞争策略分析报告
- hiv职业暴露培训课件
- 中国方言课件图文教学
- 2025年重庆市高考物理试卷(含答案解析)
- 小番茄栽培技术课件
- 女职工普法宣传教学课件
- (高清版)DB22∕T 5159-2024 预应力混凝土桩基础技术标准
- 手术后切口愈合不良查房
评论
0/150
提交评论