当前位置: 首页 > 范文大全 > 公文范文 >

[微机原理实验报告——分支程序设计]

时间:2021-11-06 16:58:08 来源:网友投稿

 实验三 分支程序设计

 一、实验要求和目的1.熟悉汇编语言程序设计结构;

 2.熟悉汇编语言分支程序基本指令的使用方法;

 3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。

 二、软硬件环境

 1.硬件环境:微机 CPU 486 以上, 500MB以上硬盘, 32M以上内存;

 2.软件环境:装有 MASM 5.0、 DEBUG、 LINK 和 EDIT 等应用程序。

 三、实验涉及的主要知识单元

 在实际应用中, 经常根据一些条件来选择一条分支执行。 汇编语言的条件判断主要是通

 过状态寄存器中的状态位、 无符号数相减或有符号和相减而导致的结果来进行。

 下面就有符号数转移指令来了解在汇编语言程序设计方法。

 四、实验内容与步骤

 1.实验内容

 ( 1)编写计算下面函数值的程序:

 1, x

 

 0

 y

 

 0, x

 

 0

 1, x

 

 0

 设输入数据为

 

 X 、输出数据

 

 Y ,且皆为字节变量,使用

 

 Debug 查看

 

 X、 Y 两个变量

 的数据

 ( 2)以 ARRAY为首地址的内存单元中,

 最大数,并将结果存入 RESULT字节单元中。

 2.实验步骤

 

 存放

 

 5 个

 

 8 位的不带符号数, 找出

 

 5 个数中的实验流程图

 计算函数值的流程图

 编写程序

 计算函数值的实验代码

 DB 12

 DB ?

 MOV DS,AX

 MOV AL,XX

 CMP AL,0

 ;把 AX与 0 比较

 JGE BIGPR

 ; AL

 0

 转入 BIGPR

 MOV Y,0FFFFH

 ; AL

 0

 则 Y1

 JMP EXIT

 BIGPR: JE EQUPR

 ; AL

 0

 转入 EQUPR

 MOV Y,1

 ; AL

 0 则 Y

 1

 JMP EXIT

 EQUPR: MOV Y,0

 ; AL

 0 则 Y

 0

 EXIT:

 MOV AL,Y

 RET

 CODE

 ENDS

 END START

 查找最大值的实验代码

 DATA

 SEGMENT

 ARRAY

 DB

 2,1,4,5,3

 RESULT DB

 DATA

 ENDS

 STACK

 SEGMENT STACK'STACK'

 DB 100H DUP(?)

 STACK

 ENDS

 CODE

 SEGMENT

 ASSUME CS:CODE,DS:DATA,SS:STACK

 START: MOV AX,DATA

 MOV DS,AX

 LEA BX,ARRAY

 MOV AL,[BX]

 ;ARRAY第一个数存入 BX

 MOV CX,5

 ;置循环次数

 LOP:

 INC BX

 ;指针变量增 1

 CMP AL,[BX]

 ;比较 AL 中数与 [BX] 的大小

 JAE L1

 ; AL [BX] 转入 L1

 MOV AL,[BX]

 ; AL [BX] 则 AX[BX]

 L1:

 LOOP LOP

 ;执行循环 LOP程序

 MOV RESULT,AL

 MOV AH,4CH

 INT 21H

 CODE

 ENDS

 END START

 c. 对程序进行 debug 调试,观察中间结果

 计算函数值的调试

 反汇编内容

 ①MOV AL,XX 反汇编后变成 MOV AL,[0000] ,即 XX 为数据段第一个存储单元的内

 容,数据段的起始偏移地址为 0000。

 ②MOV Y,-1; MOV Y, 0; MOV Y, 1 反汇编后分别对应 MOV BYTE PTR [0001],FF, MOV BYTE PTR [0001],00 , MOV BYTE PTR [0001],01 它们都表示比较后所得的结果存入

 数据段的第二个存储单元 0001

 ③JGE 如果为真,则程序执行会转入有效地址为 0014 的指令所在的存储单元,即开始执行

 1407:0014 里的指令, JZ 若为真,则程序转去执行有效地址为 001E 里的命令,即存储单元

 1407:001E 的内容

 2.D 命令查看 Y 存储单元的内容,当输入为 12 时输出为 1

 当输入为 0 时,输出为 0

 (2)查找最大值

 1.反汇编

 2.查找的最大值为 5

 即 RESULT 中存放五个数中的最大值 5

相关热词搜索: 微机 程序设计 分支 原理 实验