微机原理 分支程序设计实验
华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)

微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。
命令运行调试。
二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。
是对目标文件进行调试,验证它的正确性。
2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。
分支程序实验实验报告

一、实验目的1. 理解分支程序的概念和作用。
2. 掌握C语言中if语句、switch语句的使用方法。
3. 能够根据实际需求,合理运用分支程序解决问题。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 语言:C语言三、实验内容1. 使用if语句实现一个简单的分支程序。
2. 使用switch语句实现一个多分支程序。
3. 结合if语句和switch语句,编写一个综合性的分支程序。
四、实验步骤1. 使用if语句实现一个简单的分支程序(1)创建一个新的C语言项目,命名为“分支程序实验”。
(2)在主函数中,定义一个变量score用于存储用户输入的分数。
(3)使用scanf函数获取用户输入的分数。
(4)使用if语句判断分数所在的范围,并输出相应的评价。
(5)编译并运行程序,验证分支程序是否正确实现。
2. 使用switch语句实现一个多分支程序(1)在主函数中,定义一个变量num用于存储用户输入的数字。
(2)使用scanf函数获取用户输入的数字。
(3)使用switch语句根据用户输入的数字输出相应的结果。
(4)编译并运行程序,验证多分支程序是否正确实现。
3. 结合if语句和switch语句,编写一个综合性的分支程序(1)在主函数中,定义两个变量num和score。
(2)使用scanf函数分别获取用户输入的数字和分数。
(3)使用if语句判断数字是否在1到7之间,并使用switch语句根据分数输出相应的评价。
(4)编译并运行程序,验证综合性分支程序是否正确实现。
五、实验结果与分析1. 使用if语句实现简单的分支程序当用户输入分数为85时,程序输出“优秀”;输入分数为70时,程序输出“良好”;输入分数为60时,程序输出“及格”;输入分数低于60时,程序输出“不及格”。
2. 使用switch语句实现多分支程序当用户输入数字1时,程序输出“一”;输入数字2时,程序输出“二”;以此类推,直到输入数字7时,程序输出“七”。
分支与循环程序设计实验报告

实验名称分支与循环程序设计实验指导教师罗志祥专业班级光电1406姓名段昳晖学号U2014*****联系电话137********一、任务要求1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
264X当XYX/2当10X64X当X102.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
二、设计思路1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
264X当XYX当X/21064X当X10将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进位位CY,进一步比较大小,分别跳转至对应语句。
将结果存于外部单元的1001H以及1002H。
1专业资料整理2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。
利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60 秒,外循环循环1次,外循环循环24次,清零。
其中对端口显示的秒数、分钟数、时间数,进行二进制修正。
利用循环来设计延时程序,合理计算语句长度,以及循环次数。
程序运行时修正P3.0的值,可以实现暂停计数和继续的功能。
分支程序设计实验-单片机第二次试验

分支程序设计实验-单片机第二次试验一、任务要求1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写程序。
X2当X 40Y X/2 当20 X 40X 当X 202. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过PO、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a.实现4位十进制加、减1计数,千位、百位由P1 口输出;十位、个位由P2 口输出。
利用P3.7状态选择加、减计数方式。
b. 利用P3 口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路1. 将8bits符号数从外部RAM单元取出至A中,符号位为1的时候为负数,进行取反运算;当符号位为0的时候为正数,因此将A与20进行比较,当A< 20时跳至取反运算那一步;当A>20时将A与40进行比较,如果当A>40 时则对其进行平方运算那一步,当A V 40时则进行除法运算那一步。
每次算完之后直接储存,最后再分配储存于外部RAM单元的指定位置。
2. 清零R0~R2和P0~P2开始先判断控制位P3.0是不是0,当P3.0=1时原地踏步重复判断,当P3.0=0时开始运行程序。
计时开始,进行秒钟R0计数,每次计数完成用BCD码子程序转换,然后判断计数后R0值是否到60,若R0 的值不足60,就直接输出给P2,若R0的值为60,就把R0和P2进行清零后,开始分钟计数部分。
同理,每次分钟计数完之后用BCD码子程序转换,然后判断计数后R1的值是否为60,若不为60,就直接输出给P1,若R1的值为60,就把R1和P1清零后开始时钟计数部分。
时钟计数完后同样用BCD码子程序转换,然后判断计数后的R2的值是否为24,若不为24,就直接输出给P0,若R2为24,就把R2和P0清零后直接跳出计数部分,从判断P3.0部分再开始.每两次计数输出之间穿插一个1s的延时程序。
分支实验

《微机实验》报告实验名称 分支程序设计实验 专业班级 姓名 学号 序号 联系方式一、 任务要求1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。
240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路1.分段函数程序:将R1设置为标志位。
从外部RAM 取出X ,先判断X 与40的大小,再判断X 与20的大小。
当X 大于等于40时,标志位设置为11H ;X 小于等于20时,标志位设置为01H ;20<X<40时,标志位设置为10H 。
再对标志位进行判断,当标志位等于10H时,跳转至分支语句执行X/2的操作;当标志位大于10H时,跳转至分支语句执行求X非的操作;当标志位小于10H 时,跳转至分支语句执行求X平方的操作。
最后将X计算结果赋给片外RAM。
2.时钟程序:编写延时子程序,延时为1S。
每调用一次延时程序,秒加一,调整为BCD码后由P2口输出。
累加到60秒时,秒清0,分加一,调整为BCD码后由P1口输出。
累加到60分时,分清0,小时加一,调整为BCD码后由P0口输出。
到达24小时以后,程序重新初始化。
3.实现4位十进制加、减1计数程序:利用P3.7状态判断加一还是减一。
若P3.7为1,则加一,否则减一。
在加法程序中,每次完成加一后对当前位进行BCD码调整,并判断是否进位。
若进位则高位加一,低位置零,同时对高位进行BCD码调整。
实验3分支程序设计实验

分支程序设计实验一、实验目的1、掌握分支程序的设计方法。
2、掌握宏定义及宏调用的基本方法。
3、了解小写和大写字母的ASCII码表示及其转换方法。
了解数字及其它字符在的ASCII码表示方法。
4、进一步掌握调试工具的使用方法二、实验内容1、从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“You Input a Lowercase Letter!”;若输入为大写字母,显示“You Input a Uppercase Letter!”;若输入为数字,显示“You Input a Digit!”;若输入为其它字符,显示“You Input Other Letter!”。
完整代码如下:DA TA SEGMENTINFOR1 DB 0AH,0DH,"Please Press Any Key to input a letter:$"INFOR2 DB 0AH,0DH,"You Input a Lowercase Letter!$"INFOR3 DB 0AH,0DH,"You Input a Uppercase Letter!$"INFOR4 DB 0AH,0DH,"You Input a Digit!$"INFOR5 DB 0AH,0DH,"You Input Other Letter!$"DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET INFOR1MOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,'0'JB OTHERCMP AL,'9'JBE DIGITCMP AL,'A'JB OTHERCMP AL,'Z'JBE UPPERCMP AL,'a'JB OTHERCMP AL,'z'JBE LOWERJMP PENDLOWER:MOV DX,OFFSET INFOR2MOV AH,09HINT 21HJMP PENDUPPER:MOV DX,OFFSET INFOR3MOV AH,09HINT 21HJMP PENDDIGIT:MOV DX,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDOTHER:MOV DX,OFFSET INFOR5MOV AH,09HINT 21HPEND:MOV AH,4CHINT 21HCODE ENDSEND START2、在屏幕上显示如下信息:1------------------------Panda2------------------------Cat3------------------------Rabbit4------------------------Pig5------------------------EXIT(Please choose 1,2,3,4or 5)-----若输入1,显示“I like panda”后程序结束;若输入2,显示“I like cat”后程序结束;若输入3,显示“I like rabbit”后程序结束;若输入4,显示“I don’t like pig”后程序结束;若输入5,程序直接结束;若输入其它字符,显示“You press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
实验四 分支程序设计(一)
实验四分支程序设计
一、实验目的
1、利用已掌握的汇编语言进行简单的程序设计练习。
2、学习和掌握建立与运行汇编语言源程序各个步骤的命
令。
3.熟悉汇编程序的调试过程。
二、实验内容
在一个有正负数的数据块中,找出负数的个数。
假设有数据-19,28,37,-46,55,61,-74,数据块的长度存放在CX寄存器中,负数的个数存放在以SUM为符号的单元中。
实验预习要求
按照题目要求画出流程图,并在实验前编写好源程序三、实验器材
IBM PC/XT 微机一台
四、实验思考题
1、如果找正数的个数,如何修改程序?上机调试后写出
该程序。
五、实验报告要求
1、整理出经过运行而且证明是正确的源程序。
2、整理正确的运行结果。
3、回答思考题
4、实验报告中应包括实验目的,实验内容,实验步骤,
实验设备,思考题。
微机原理实验4
实验四:分支、循环程序设计一. 实验目的1.学习分支程序、循环结构程序的设计和调试方法;2.学习子程序的定义和调试方法;3.掌握分支、循环、子程序等程序的基本结构。
二. 实验设备TDN 86/51或TDN 86/88教学实验系统一台三. 实验内容、步骤及要求1. 设计一数据块间的搬移程序数据块搬移的基本原则为:对于两个分离的数据块,从首地址或从末地址开始传送均可。
对于有部分重叠的情况则:当源数据块首地址>目的数据块首地址时,从数据块首地址开始传送数据。
当源数据块首地址<目的数据块首地址时,从数据块末地址开始传送数据。
2.求某数据区内负数的个数设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。
为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。
3.学生成绩名次表将分数为1~100之间的10个成绩存入首址为3000H的单元中,3000H+I表示学号为I的学生成绩。
编写程序能在3100H开始的区域排出名次表,3100H+I为学号I的学生名次。
4. 求无符号字节序列中的最大值和最小值设有一字节序列,其存储首地址为3000H,字节数为08H。
利用子程序的方法编程求出该序列中的最大值和最小值。
四. 编程练习(A) 在3500H单元开始中输入数据:09H(数据个数)12H、80H、78H、C8H、00H、00H、FEH、99H、34H,编写程序使其能分别求出数据区中的正数和负数以及零的个数,正数的个数放在3510H单元中,负数的个数放在3511H单元中,零的个数放在3512H单元中.(B) 有三个8位二进制数连续存放在03200H开始的内存单元中,设它们之中至少有两个数是相同的。
编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到03204H单元,若三个数都相同则送0FFFFH到03204H单元。
单片机第二次试验报告材料——分支程序设计
《微机实验》报告实验名称 分支程序设计实验 专业班级 姓名 学号 序号 联系方式一、任务要求熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。
240/2204020X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路1.分段函数设计对于第一个任务,相当于设计一个分段函数程序,根据变量X的值所处的区间进行相应的计算。
由学过的知识知道,可利用比较转移指令CJNE来判断X是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY的值来判断X与临界值的的大小关系,易知CY=0则X大于临界值,CY=1则X小于临界值;如此,再进行相应的计算。
另外,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储。
2. 24小时制时钟程序本程序须可以构建两部分循环。
首先构建一个三重循环实现“一秒延时”,循环体利用NOP指令(单字节指令,1µs)经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。
需要注意的是,在小时、分、秒达到59时,下一次应该为零。
实验五 分支程序设计实验(二)
实验五分支程序设计实验(二)
一、实验目的:
1、熟悉8086指令系统的移位指令和控制转移指令。
2、进一步熟悉debug调试程序的运用。
3、掌握完整的汇编程序的上机方法。
二、实验内容:
1、判断PAR单元数据的奇偶性,当为奇数时置MARK单
元为1,当为偶数时置MARK单元为0。
2、在A,B单元各有一个有符号数,从键盘输入一个字符,
当其为“A”时,表示将该两个有符号数相加,结果存
入C单元中。
当收到“S”时,表示将该两个有符号数相
减,结果也存入C单元中。
当为非”A“或”S”时,则
不做运算,置C单元为0FFH。
三、实验器材
IBM PC 微机一台
四、实验预习要求:
按题目要求,画出流程图,在实验前编写好源程序。
五、实验报告要求
1、整理经过运行而且证明是正确的源程序,并加上注释。
2、整理正确的运行结果。
3、实验报告中应包括实验目的,实验内容,实验步骤,实验设备,思考题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、3 分支程序设计实验 2、3、1 实验目得 1、掌握分支程序得设计方法。 2、掌握宏定义及宏调用得基本方法。 3、了解小写与大写字母得ASCII码表示及其转换方法。了解数字及其它字符在得ASCII码表示方法。 4、进一步掌握调试工具得使用方法 2、3、2 实验预习要求 1、复习比较指令、条件转移指令得用法。 2、复习宏定义及宏调用得基本方法。 3、根据“2、3、3 实验内容"中给出得流程图与程序框架编写源程序,以便上机调试。 4、程序框架中显示提示信息得指令序列用宏调用实现。 5、从“2、3、4 实验习题"中任选一道题目,编写源程序,以便上机调试. 2、3、3 实验内容 从键盘输入一字符,判断该字符就是小写字母、大写字母、数字或其它字符。若输入为小写字母,显示“You Input a Lowercase Letter!”;若输入为大写字母,显示“You Input a Uppercase Letter!”; 若输入为数字,显示“You Input a Digit!”; 若输入为其它字符,显示“You Input Other Letter!"。 1、编程指导 数字09得ASCII码为30H39H;大写字母得ASCII码为41H5AH,小写字母得ASCII码为61H7AH。本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符得ASCII码值判断其所属类型,并显示相应得信息.字符串显示使用功能号为09H得DOS功能调用,接收键盘输入得单个字符使用功能号为01H得DOS功能调用。 2、流程图及程序框图 (1)流程图
Y Y Y Y
Y
Y 显示提示信息“Please Press Any Key to input a letter” 及功能号为1得接收键盘输入单个字符得指令序列
开始
结束(AL)<’0’ (AL)<=’9’ (AL)<’A’ (AL)<=’Z’ (AL)<’a’ (AL)<=’z’ 输入得就是小写字母,显示信息 输入得就是大写字母,显示信息 输入得就是数字,显示有关信息 输入得就是其它字符,显示信息 (2)实验代码: DATA SEGMENT ﻩ ﻩINFOR1 DB 0AH,0DH,”Please Press Any Key to input a letter:$" ﻩ INFOR2 DB 0AH,0DH,”You Input a Lowercase Letter!$" ﻩﻩINFOR3 DB 0AH,0DH,”You Input a Uppercase Letter!$" ﻩﻩﻩINFOR4 DB 0AH,0DH,"You Input a Digit!$" ﻩﻩ INFOR5 DB 0AH,0DH,"You Input Other Letter!$” ﻩDATA ﻩENDS ﻩﻩCODE SEGMENT ﻩ ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ﻩ MOV DS,AX ﻩ ﻩMOV DX,OFFSET INFOR1 ﻩ MOV AH,09H ﻩﻩﻩﻩINT 21H ﻩ CMP AL,’0' ﻩﻩﻩJB OTHER ﻩﻩﻩCMP AL,’9' ﻩﻩJBE DIGIT ﻩ CMP AL,'A' JB OTHER ﻩCMP AL,’Z’ ﻩJBE UPPER ﻩ CMP AL,'a' ﻩﻩJB OTHER ﻩ ﻩCMP AL,’z' ﻩﻩJBE LOWER ﻩ JMP PEND LOWER:MOV DX,OFFSET INFOR2 ﻩMOV AH,09H INT 21H ﻩJMP PEND ﻩUPPER:MOV DX,OFFSET INFOR3 ﻩﻩMOV AH,09H INT 21H ﻩJMP PEND DIGIT:MOV DX,OFFSET INFOR4 ﻩMOV AH,09H INT 21H JMP PEND ﻩOTHER:MOV DX,OFFSET INFOR5 ﻩMOV AH,09H INT 21H JMP PEND ﻩPEND:MOV AH,4CH ﻩINT 21H ﻩCODE ENDS END START (3)实验结果:
2、3、4 实验习题 1、 在屏幕上显示信息“Are you really want to exit?”,然后从键盘输入一个字符,若输入“Y”或“y”,显示“Thank you for your using!”后程序结束;若输入“N”或“n”,显示“Let's continue!”后程序结束;若输入其它字符,显示“You press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。 (1)实验代码: ﻩDATA SEGMENT INFOR1 DB 0AH,0DH,"Are you really want to exit?$” ﻩ INFOR2 DB 0AH,0DH,"Thank you for your using !$" INFOR3 DB 0AH,0DH,"Let's continue !$" ﻩINFOR4 DB 0AH,0DH,"You press an error key !$" DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA ﻩMOV DS,AX MOV DX,OFFSET INFOR1 ﻩ MOV AH,09H INT 21H ﻩMOV AH,01H ﻩﻩINT 21H ﻩ CMP AL,'Y’ ﻩﻩJE YES CMP AL,'y' ﻩﻩJE YES ﻩCMP AL,'N’ ﻩ JE NO ﻩCMP AL,’n' ﻩﻩJE NO ﻩ JMP PEND YES:MOV DX,OFFSET INFOR2 ﻩﻩMOV AH,09H ﻩ INT 21H JMP PEND NO:MOV DX,OFFSET INFOR3 ﻩMOV AH,09H INT 21H JMP PEND OTHER:MOV DX,OFFSET INFOR4 ﻩ MOV AH,09H INT 21H JMP PEND PEND:MOV AH,4CH ﻩﻩINT 21H CODE ENDS END START (2) 实验结果:
2、 在屏幕上显示如下信息: 1-—--—-———---———--——--—--Panda 2----————----——-——---—---Cat ﻩ 3—-—-—————---——-—----—---Rabbit 4—--------—-—----——------Pig 5—--—--——---—----—-—-—-—-EXIT (Please choose 1,2,3,4or 5)----— 若输入1,显示“I like panda”后程序结束;若输入2,显示“I like cat"后程序结束;若输入3,显示“I like rabbit"后程序结束;若输入4,显示“I don’t like pig”后程序结束;若输入5,程序直接结束;若输入其它字符,显示“You press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。 (1)代码: DATA SEGMENT INFOR1 DB 0AH,0DH,"1-——--—---—---—--—---—Panda$" INFOR2 DB 0AH,0DH,”2--—-———-—-—-——-—-—---Cat$" INFOR3 DB 0AH,0DH,"3——-—--—--——--—--——-—-Rabbit$" INFOR4 DB 0AH,0DH,"4-----—-————--—-———---Pig$” ﻩINFOR5 DB 0AH,0DH,"5——----—------—-———--—EXIT$” ﻩINFOR6 DB 0AH,0DH,"I like Panda$” ﻩINFOR7 DB 0AH,0DH,”I like Cat$” INFOR8 DB 0AH,0DH,"I like Rabbit$" ﻩINFOR9 DB 0AH,0DH,"I don’t like Pig$" DATA ENDS CODE SEGMENT ﻩASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX ﻩMOV DX,OFFSET INFOR1 MOV AH,09H INT 21H ﻩMOV DX,OFFSET INFOR2 MOV AH,09H ﻩINT 21H MOV DX,OFFSET INFOR3 MOV AH,09H INT 21H ﻩMOV DX,OFFSET INFOR4 MOV AH,09H ﻩINT 21H ﻩMOV DX,OFFSET INFOR5 ﻩMOV AH,09H ﻩINT 21H ﻩMOV AH,01H INT 21H CMP AL,’1' ﻩJE A CMP AL,'2' JE B ﻩCMP AL,'3’ ﻩJE C CMP AL,’4’ JE D CMP AL,'5' ﻩJE PEND ;JMP PEND A:MOV DX,OFFSET INFOR6 MOV AH,09H