分支程序实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩:计算机原理实验室实验报告

课程:汇编语言与微机原理

姓名:

专业:网络工程

学号:

日期:2016年12月

太原工业学院

计算机工程系

实验二:分支程序实验

实验环境PC机+Win 2003+emu8086 实验日期2016.11 一.实验内容

1.实现两位十进制数猜数字游戏。基本要求:从键盘输入两位数和程序中预设数值比较,当输入数据大于预设数值时,屏幕输出‘>’;当输入数据小于预设数值时,屏幕输出‘<’;当输入数据等于预设数值时输出‘=’并退出。

2.在实现上述基本功能的基础上,注意显示输出时的格式控制,实现每次输出都换行。

3.扩展实现:当输入数据大于预设数值两倍以上时,显示输出远大于‘>>’;当输入数据比预设数值的二分之一还小时,显示输出远小于‘<<’。

二.理论分析或算法分析

基础要求,在初始时,假设要猜的数位50,程序运行时将其转换为BCD传给CX,然后通过中断输入第一个数,假设为(11),然后将其与50进行比较,会有三种分支(大于,等于,小于),然后通过转移指令输出(>,<,=),然后再跳到程序开始端继续输入,继续判断跳到哪个分支,知道输入的数等于要猜的数50,程序结束

拓展要求,只需在原基础上进行修改,判断,当输入的数小于初始数的1/2或大于初始数的2倍,则显示<<或>>

三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)基础要求

org 100h

jlp:

mov AX, Num

aad

mov cx, ax

mov AH, 1

int 21h

mov BH, al

int 21h

mov BL, al

and bx, 0f0fH

mov ax, bx

aad

mov bx, ax

cmp bx, cx

jz jequ

ja jbig

mov dl, '<'

mov ah, 2

int 21h

jmp jp1

jbig:

mov dl, '>'

mov ah, 2

int 21h

jmp jp1

jp1:

mov dl, 13

int 21h

mov dl, 10

int 21h

jmp jlp

jequ:

mov dl, '='

mov ah, 2

int 21h

jmp $

Num dw 0500h ret

拓展要求

org 100h

jlp:

mov AX, Num aad

mov cx, ax

mov AH, 1

int 21h

mov BH, al

int 21h

mov BL, al

and bx, 0f0fH mov ax, bx

aad

mov bx, ax

cmp bx, cx

jz jequ

ja jbig

mov dl, '<'

mov ah, 2

int 21h

shl bx,1

cmp bx,cx

jae jp1

mov ah,2

int 21h

jmp jp1

jbig:

mov dl, '>'

mov ah, 2

int 21h

shr bx,1

cmp bx,cx

jbe jp1

int 21h

jmp jp1

jp1:

mov dl, 13

int 21h

mov dl, 10

int 21h

jmp jlp

jequ:

mov dl, '='

mov ah, 2

int 21h

jmp $

Num dw 0305h

ret

四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)基础要求

拓展要求

五.结论

通过本次实验,是我对分支程序有了更多的了解与认识,以及对部分中断和转移类指令有

了更深的理解,之前一直困扰的关于BCD码修正和比较大小也得到了解决,总之实验收获颇多!

相关文档
最新文档