2022年东北大学计算机硬件基础分支程序设计实验报告复习进程_第1页
2022年东北大学计算机硬件基础分支程序设计实验报告复习进程_第2页
2022年东北大学计算机硬件基础分支程序设计实验报告复习进程_第3页
2022年东北大学计算机硬件基础分支程序设计实验报告复习进程_第4页
2022年东北大学计算机硬件基础分支程序设计实验报告复习进程_第5页
已阅读5页,还剩16页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、资料收集于网络,如有侵权请联系网站删除东 北 大 学 运算机硬件技术基础 试验报告班级:机械 0908 姓名:学号:20222063 试验题目:分支程序设计日期:2022 年 11 月 28 日试验一 一、试验目的 1 把握分支程序的结构;2 把握分支程序的设计,调试方法;二、试验内容设有 3 个单字节无符号数存放在 从大到小重新排序的程序;三、算法描述流程图word 可编辑BUF开头的缓冲区中,编写一个能将他们资料收集于网络,如有侵权请联系网站删除四、试验步骤1. 输入源程序:DATA SEGMENT BUF DB 13,52 ,14 DATA ENDS CODE SEGMENT ASSUM

2、E CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF MOV AL,SI ;把 3 个数取到寄存器中MOV BL,SI+1 MOV CL,SI+2 CMP AL,BL JAE NEXT1 XCHG AL,BL ;排序,将最大数送 AL 寄存器NEXT1: CMP AL,CL JAE NEXT2 XCHG AL,CL NEXT2: CMP BL,CL ;将最小数送 CL 寄存器JAE NEXT3 XCHG BL,CL NEXT3: MOV SI,AL ;从大到小依次存回缓冲区MOV SI+1,BL MOV SI+2,CL

3、 MOV AH,4CH INT 21H CODE ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和emulator:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序aux,挑选 memory,查看地址 0710:0000,体会证运行结果为 34 0E 0D,即 52 14 13,由大到小排列,满意题目要求且无错误;五、试验结果 1.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emu

4、lator:noname.exe_文件,得到如下界面:word 可编辑资料收集于网络,如有侵权请联系网站删除2.执行 run 程序,打开程序 界面:aux,挑选 memory,查看地址 0710:0000,得到如下运行结果为 34 0E 0D,即 52 14 13,由大到小排列,满意题目要求且无错误;六、摸索题分支结构程序设计的关键在于精确地知道操作结果影响的标志位状态和正 确的地使用条件转移指令; 本程序中, 由于是无符号数的比较, 所以也可以依据 一个标志位来判定数的大小, 你能说出那个是标志位吗, 且程序中的 JEA指令改 用什么指令替换呢?答: 可以依据 CF标志位来判定数的大小; C

5、F=0时, DSTSRC;当 CF=1时,DSTRSC;当 CF=1时,用 JC指令可以实现转移;当现转移;七、扩展题CF=0时,用 JNC指令可以实在 BUF 开头的单元里有 3 个单字节无符号数,编写程序找出它们中的最小值并存入 MIN 单元;1输入源程序如下:DSEG SEGMENT BUF DB 99,72,88 MIN DB 0 DSEG ENDS CODE SEGMENT word 可编辑资料收集于网络,如有侵权请联系网站删除START: ASSUME CS:CSEG,DS,DSEG ;把 3 个数取到寄存器中MOV AX,DSEG MOV DS,AX MOV SI,OFFSET

6、BUF MOV AL,SI 存器MOV BL,SI+1 ;排序,将最大数送 AL 寄MOV CL,SI+2 CMP AL,BL NEXT1: JAE NEXT1 ;排序,将最小数送MINXCHG AL,BL MOV MIN,BL 区CMP BL,CL NEXT2: JAE NEXT2 XCHG BL,CL MOV MIN,CL CODE MOV AH,4CH INT 21H ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;3.

7、执行 run 程序,打开程序 图;aux,挑选 memory,查看地址 0710:0000,结果如下体会证运行结果为 63 48 58 48 ,即 99 72 88 ,MIN区值为 48,即最小值 72,无错误;八、试验心得通过此次试验我懂得了汇编语言中编程的基本步骤,把握了分支结构程序设计中精确知道操作结果影响的标志位状态和正确的使用无条件转移指令以及无符号数的比较方法;这个试验,使我熟识到直接通过CPU寄存器地址赋值可以大大提高效率,并且让我知道要连续练习熟读汇编语言代码的功能及用法;word 可编辑资料收集于网络,如有侵权请联系网站删除试验二 一、试验目的 1 把握分支程序的结构;2 把

8、握分支程序的设计,调试方法;二、试验内容设有 3 个单字节无符号数存放在 从大到小重新排序的程序;三、算法描述流程图四、试验步骤(1)x、y 异号 1. 输入源程序:DATA SEGMENT word 可编辑BUF开头的缓冲区中,编写一个能将他们资料收集于网络,如有侵权请联系网站删除X DB 99 -33 0 CS:CODE,DS:DATA AX,DATA DS,AX Y DB Z DB DATA ENDS CODE SEGMENT ASSUME START: MOV MOV CMP JL CMP JL MOV X,0 ;x 与 0 进行比较L1 ;x0 转 L1Y,0 L2 ;y=0,y=0

9、 就 1Z ,无条件转EXITL1: JMP EXIT ;y=0 转 L2CMP Y,0 L2: JGE L2 ;x0,y0 就-1Z,无条件 EXITMOV Z,-1 JMP EXIT ;x,y 异号就 0ZMOV Z,0 EXIT: MOV AH,4CH CODE INT 21H ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序aux,挑选 memory,查看地址 0710:0000,体会证

10、当x、y 异号时, Z 值为 0,结果满意题目要求且无错误;(2)x、y 同为正 1. 输入源程序:DATA SEGMENT 13 14 0 CS:CODE,DS:DATA AX,DATA DS,AX X DB Y DB Z DB DATA ENDS CODE SEGMENT ASSUME START: MOV MOV CMP JL CMP JL MOV X,0 ;x 与 0 进行比较L1 ;x0 转 L1Y,0 L2 ;y=0,y=0 就 1Z ,无条件转word 可编辑资料收集于网络,如有侵权请联系网站删除EXITL1: JMP EXIT ;y=0 转 L2CMP Y,0 L2: JGE

11、L2 ;x0,y0 就-1Z,无条件 EXITMOV Z,-1 JMP EXIT ;x,y 异号就 0ZMOV Z,0 EXIT: MOV AH,4CH CODE INT 21H ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序aux,挑选 memory,查看地址 0710:0000,体会证当x、y 都大于 0 时, Z 值为 1,结果满意题目要求且无错误;(3)x、y 同为负 1. 输入源程序

12、:DATA SEGMENT -36 -12 0 CS:CODE,DS:DATA AX,DATA DS,AX X DB Y DB Z DB DATA ENDS CODE SEGMENT ASSUME START: MOV MOV CMP JL CMP JL MOV X,0 ;x 与 0 进行比较L1 ;x0 转 L1Y,0 L2 ;y=0,y=0 就 1Z ,无条件转EXITL1: JMP EXIT ;y=0 转 L2CMP Y,0 L2: JGE L2 ;x0,y0 就-1Z,无条件 EXITMOV Z,-1 JMP EXIT ;x,y 异号就 0ZMOV Z,0 EXIT: MOV AH,4

13、CH CODE INT 21H ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;word 可编辑资料收集于网络,如有侵权请联系网站删除3.执行 run 程序,打开程序 aux,挑选 memory,查看地址 0710:0000, 体会证当x、y 都小于 0 时, Z 值为 -1,结果符合题目要求且无错误;五、试验结果(1)x、y 异号 1.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 origi

14、nal source code 和 emulator:noname.exe_文件,得到如下界面:2.执行 run 程序,打开程序 界面:aux,挑选 memory,查看地址 0710:0000,得到如下体会证当 x、y 异号时, Z 值为 0,结果满意题目要求且无错误;(2)x、y 同为正 1.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,得到如下界面:word 可编辑资料收集于网络,如有侵权请联系网站删除2.执行 run 程序,打开程序 界面:aux,挑选 memor

15、y,查看地址 0710:0000,得到如下体会证当 x、y 都大于 0 时, Z 值为 1,结果满意题目要求且无错误;(3)x、y 同为负 1.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,得到如下界面:2.执行 run 程序,打开程序 界面:word 可编辑aux,挑选 memory,查看地址 0710:0000,得到如下资料收集于网络,如有侵权请联系网站删除x、y 都小于 0 时, Z 值为 -1,结果符合题目要求且无错误;六、摸索题本程序中判定符号用的是CMP 指

16、令,而用规律操作指令也可以;比如,可以用 AND 指令,使其进行自身与操作,反映到 SF 标志位,仍可以用 TEST 指令直接测试最高位,并将结果反映到 ZF 标志位,然后依据 ZF 标志位判定;试用 TEST 指令编之;答:1.输入源程序如下:DATA SEGMENT 66 X DB Y DB -100 Z DB 0 DATA ENDS CS:CODE,DS:DATA CODE SEGMENT ASSUME START: MOV AX,DATA L2: MOV DS,AX TEST X,80H JNE L1 TEST Y,80H JNE L2 MOV Z,1 JMP EXIT L1: TES

17、T Y,80H JE L2 MOV Z,-1 JMP EXIT MOV Z,0 EXIT: MOV AH,4CH INT 21H word 可编辑资料收集于网络,如有侵权请联系网站删除CODE ENDS START END 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序 图aux,挑选 memory,查看地址 0710:0000,结果如下体会证运行结果为 42 9C 00,即 66 -100 0,x、y 异号, Z 值为

18、0,无错误;七、扩展题假如不采纳上述方法判定两数的符号,而采纳两数异或的方法判定两数的符号,当两数的符号不相同时,其结果的最高位必定为 1;当两数的符号相同时,其结果的最高位必定为 0;在依据其中一数的符号是正仍是负打算两数是正数仍是负数;请做程序完成;(1)x、y 同号1. 输入源程序:DSEG SEGMENT -3 X DB Y DB -4 Z DB 0 DSEG ENDS CS:CSEG,DS:DSEG CSEG SEGMENT ASSUME START: MOV AX,DSEG L1: MOV DS,AX MOV AL,X MOV BL,Y XOR AL,BL JS L1 JGE L2

19、 MOV Z,1 JMP EXIT MOV Z,1 L2: JMP EXIT MOV Z,0 word 可编辑资料收集于网络,如有侵权请联系网站删除EXIT: MOV AH,4CH CSEG INT 21H ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序图;(2)x、y 异号 1. 输入源程序:DSEG SEGMENT aux,挑选 memory,查看地址 0710:0000,结果如下X DB

20、 5 Y DB -6 Z DB 0 DSEG ENDS CS:CSEG,DS:DSEG CSEG SEGMENT ASSUME START: MOV AX,DSEG L1: MOV DS,AX MOV AL,X MOV BL,Y XOR AL,BL JS L1 JE L2 MOV Z,1 JMP EXIT MOV Z,1 L2: JMP EXIT MOV Z,0 EXIT: MOV AH,4CH CSEG INT 21H ENDS END START 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和emulator

21、:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序 word 可编辑aux,挑选 memory,查看地址 0710:0000,结果如下资料收集于网络,如有侵权请联系网站删除图;八、试验心得 通过此次试验我懂得了汇编语言中编程的基本步骤,把握了 emu8086软件的 基本运用, 调试,对运行结果的简洁分析; 能运用基本的汇编语言做一些简洁的 程序,特别是对 CMP指令,规律指令 TEST和他对应的 ZF指令的熟识与运用;试验三 一、试验目的 1 把握分支程序的结构;2 把握分支程序的设计,调试方法;二、试验内容设有 3 个单字节无符号数存放在 从大到小重新排序的程序;三、

22、算法描述流程图word 可编辑BUF开头的缓冲区中,编写一个能将他们资料收集于网络,如有侵权请联系网站删除四、试验步骤1. 输入源程序DATA SEGMENT DIS0 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

23、8 .$ DIS9 DB INPUT DIGIT 9 .$ DIS10 DB INPUT CHARACTER .$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,1 ;调用键盘输入 DOS 中断word 可编辑资料收集于网络,如有侵权请联系网站删除数INT 21H CMP AL,30H ;假如输入的是非数字就转M JB M CMP AL,39H JA M AND AL,0FH JMP N :假如输入的是数字就转N,AL 寄存器储存输入的M: MOV AL,10 ;假如输入的是非

24、数字就将AL 寄存器送 10 N: LEA BX,TAB ;依据 AL 寄存器的值求转移地址表的地址EXIT: MOV AH,0 SHL AL,1 ADD BX,AX JMP BX ;转到地址表中对应的指令去执行MOV AH,4CH TAB: INT 21H JMP SHORT P0 ;地址表P0: JMP SHORT P1 JMP SHORT P2 JMP SHORT P3 JMP SHORT P4 JMP SHORT P5 JMP SHORT P6 JMP SHORT P7 JMP SHORT P8 JMP SHORT P9 JMP SHORT P10 LEA DX,DIS0 ;显示输入字

25、符 INPUT DIGIT0 . P1: MOV AH,9 INT 21H JMP EXIT LEA DX,DIS1 ;显示输入字符 INPUT DIGIT1 . P2: MOV AH,9 INT 21H JMP EXIT LEA DX,DIS2 ;显示输入字符 INPUT DIGIT2 . P3: MOV AH,9 INT 21H JMP EXIT LEA DX,DIS3 ;显示输入字符 INPUT DIGIT3 . P4: MOV AH,9 INT 21H JMP EXIT LEA DX,DIS4 ;显示输入字符 INPUT DIGIT4 . word 可编辑资料收集于网络,如有侵权请联系

26、网站删除P5: MOV AH,9 ;显示输入字符 INPUT DIGIT5 . INT 21H JMP EXIT LEA DX,DIS5 P6: MOV AH,9 ;显示输入字符 INPUT DIGIT6 . INT 21H JMP EXIT LEA DX,DIS6 P7: MOV AH,9 ;显示输入字符 INPUT DIGIT7 . INT 21H JMP EXIT LEA DX,DIS7 P8: MOV AH,9 ;显示输入字符 INPUT DIGIT8 . INT 21H JMP EXIT LEA DX,DIS8 P9: MOV AH,9 ;显示输入字符 INPUT DIGIT9 .

27、INT 21H JMP EXIT LEA DX,DIS9 P10: MOV AH,9 ; 显 示 输入 字 符INPUT INT 21H JMP EXIT LEA DX,DIS10 CHARACTER . CODE MOV AH,9 INT 21H JMP EXIT ENDS START END 2.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和 emulator:noname.exe_文件,结果无错误;3.执行 run 程序,打开程序aux,挑选 memory,查看地址 0710:0000,结果无错误;体会证,输入

28、数字 09 时,显示 INPUT DIGIT0 . INPUT DIGIT9 .;输入其他键时,显示 INPUT CHARACTER . ,结果符合题意且正确;五、试验结果1.执 行 emulate 程 序 , 对 源 程 序 进 行 调 试 , 生 成 original source code 和emulator:noname.exe_文件,得到如下界面:word 可编辑资料收集于网络,如有侵权请联系网站删除2.执行 run 程序,分别输入数字: “ 5” 和字母“体会证,运行结果无错误且符合题意;六、摸索题word 可编辑T” ,得到如下界面:资料收集于网络,如有侵权请联系网站删除再求相应地址是,程序中使用了SHL AL ,1 语句,请问这说明白什么?答:“ SHL AL,1 的命令是指将操作数乘以 2,在该程序中,转移指令表中的每条转移指令代码是由两个字节组成的,将 AL 寄存器中的数乘以 2 后再与BX 相加,就是对应输入数字的转移指令代码的有效地址;七、扩展题编制程序,判定键盘输入的一个数,如输入15,就将该数转换为二进制数存放至 RLT 单元,如输入其他数就显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论