微机原理实验3分支程序设计

更新时间:2023-11-24 12:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

物理与机电工程系

(2015——2016 学年第 一 学期)

《分支程序设计 》 上机实验报告

专 业:电子信息工程 学 号: 4625852555 姓 名: 不同人 任课教师: 规范和 实验地点: 实验楼368 项目编号: 实 验 三

一、实验目的: 1. 掌握分支程序的基本结构和设计方法。 2. 掌握分支程序上机运行和调试方法。 3. 熟悉DEBUG的使用。 二、实验内容: ?1x?0?x?0 ,要求x和y存放在内存单元中,并将判1. 用分支结构设计程序实现符号函数y??0??1x?0?断的结果在屏幕上显示输出。 2. 在键盘上输入一个字符,判断是否为小写字母,若不是,显示错误信息,若是,则将其转换为大写字母并显示。 3. 在键盘上输入一个字符,判断它是一个数字、大写字母还是小写字母,若为数字,则显示digital,若为字母,显示letter,否则,显示other。 4. 将字节型变量x的低四位(一位十六进制数)以十六进制数的形式显示。 三、实验过程: ?1x?0?x?0的源程序,汇编源程序,运行1. 根据要求用分支结构设计编辑实现符号函数y??0??1x?0?MASM FOR WINDOWS软件,打开写好的程序,源程序即用p指令逐条执行的寄存器变化及指令逐条含义如下: DATAS SEGMENT ;定义数据段 x db -6 ;存入x的值,比如此处取x=-6 y db ? da db 'y=1','$' den db 'y=0','$' xiao db 'y=-1','$' DATAS ENDS STACKS SEGMENT ;定义堆栈段 三、实 STACKS ENDS CODES SEGMENT ;定义代码段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;初始化 mov al,x ;X=-6送入AL cmp al,0 ;将AL与0比较大小 JL next ;(小于转移,SF!=0且ZF=0)小于转移到next jg next1 ;(大于转移,SF=0F且ZF=0)大于转移到next1 mov y,0 ;将存入y lea dx,den ; 取den的偏移地址送DX mov ah,09h ;9存入AH int 21h ;调用9号功能键,显示den的内容‘y=0’ jmp next2 ;无条件转移到next2 next1: mov y,1 ;1送入y lea dx,da ;取da的偏移地址放DX mov ah,09h int 21h ;调用9号功能显示da的内容‘y=1’ jmp next2 ;无条件转移到next2 next: mov y,-1 ;-1放y lea dx,xiao ;取xiao的偏移地址放DX中 mov ah,09h int 21h ;调用9号功能显示xiao的内容‘y=-1’ next2: MOV AH,4CH ;调用返回DOS功能 INT 21H ;返回DOS CODES ENDS ;代码段结束 END START ;汇编结束,起始运行地址为START 程序流程图如下: 四、实 五、实 六、教开始定义段和输出字符串存入自变量X初始化X送AL与0比较 取Y=-1偏移地址送DXY小于否?N大与否?N取Y=0偏移地址送DXY取Y=1偏移地址送DX调用9号功能键输出返回DOS功能调用结束 调试过程如下: 2. 根据要求,在键盘上输入一个字符,判断是否为小写字母,若不是,显示错误信息,若是,则将其转换为大写字母并显示,写出源程序,汇编源程序,运行MASM FOR WINDOWS软件,打开写好的程序,源程序即用p指令逐条执行的寄存器变化及指令逐条含义如下: DATAS SEGMENT ;定义数据段 y db 'error','$' ;定义输出字符串 DATAS ENDS STACKS SEGMENT ;定义堆栈段 STACKS ENDS CODES SEGMENT ;定义代码段 ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS ;初始化 MOV DS,AX mov ah,1 ;1放AH int 21h ;调用1号功能,输入一个字符 cmp al,61h ;与61H比较大小

本文来源:https://www.bwwdw.com/article/3jzt.html

Top