. .

. . .

实验二 分支程序设计

一、实验目的:

1、学习分支程序的设计方法

2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程

二、实验环境:

硬件环境 IBM/PC 及其兼容机

软件环境 操作系统DOS

编辑程序EDIT或其他编辑程序

汇编程序MASM.EXE

连接程序LINK.EXE

调试程序DEBUG.EXE

三、实验容:

1、在屏幕上显示如下信息:

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)流程图

Y

Y

Y

Y

Y

N

N

N

N

N

开始

选项

用户输入

Al=1

Al=2

Al=3

Al=4

Al=5

You press an error key

结束

I like panda

I like cat

I like rabbit

I like do not like pig

2)源程序

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,"(please choose 1,2,3,4 or 5---):$"

INFOR7 DB 0AH,0DH,"I like Panda:$"

INFOR8 DB 0AH,0DH,"I like Cat:$"

INFOR9 DB 0AH,0DH,"I like Rabbit;$"

INFOR10 DB 0AH,0DH,"I like pig:$"

INFOR11 DB 0AH,0DH,"you press an error key!:$"

DATA ENDS ;数据段结束

CODE SEGMENT ;代码段开始

ASSUME CS:CODE,DS:DATA ;段寻址

START: MOV AX,DATA ;将data的数据存入ax中

MOV DS,AX ;为ds赋值

MOV DX,OFFSET INFOR1 ;返回变量INFOR1段偏移地址【运行后在屏幕上显示字符1-----------Panda:】

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 ;返回变量INFOR5段偏移地址【运行后在屏幕上显示字符5-----------EXIT:】

MOV AH,09H

INT 21H

MOV DX,OFFSET INFOR6

MOV AH,09H

INT 21H

MOV AH,01H

INT 21H

CMP AL,'1'

JE Panda

CMP AL,'2'

JE Cat

CMP AL,'3'

JE Rabbit

CMP AL,'4'

JE Pig

CMP AL,'5'

JE PEND

JMP Other

Panda:

MOV DX,OFFSET INFOR7

MOV AH,09H

INT 21H

JMP PEND

Cat:

MOV DX,OFFSET INFOR8

MOV AH,09H

INT 21H

JMP PEND

Rabbit:

MOV DX,OFFSET INFOR9

MOV AH,09H

INT 21H

JMP PEND

Pig:

MOV DX,OFFSET INFOR10

MOV AH,09H

INT 21H

JMP PEND

Other:

MOV DX,OFFSET INFOR11

MOV AH,09H

INT 21H

JMP PEND

PEND: MOV AH,4CH

INT 21H

CODE ENDS

END START

2、从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。若输入为小写字母,显示“You Input a Lowercase Letter!”;若输入为大写字母,显示“You Input a Uppercase Letter!”; 若输入为数字,显示“You Input a Digit!”; 若输入为其它字符,显示“You Input Other Letter!”。

编程指导

数字0?9的ASCII码为30H?39H;大写字母的ASCII码为41H?5AH,小写字母的ASCII码为61H?7AH。本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。

YY

Y

Y

Y

Y

Y

Y

显示提示信息“Please Press Any Key to input a letter”

及功能号为1的接收键盘输入单个字符的指令序列

开始

结束素、、

(AL)

(AL)<=’9’

(AL)

(AL)<=’Z’

(AL)

(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 ;显示信息“Please Press Any Key to input a letter”的指令序列以及接收从键盘输入一个字符的指令序列

MOV DS,AX

MOV DX,OFFSET INFOR1

MOV AH,09H

INT 21H

MOV AH,01H

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: ;显示“You Input a Lowercase Letter!”的指令序列

MOV DX,OFFSET INFOR2

MOV AH,09H

INT 21H

JMP PEND ;注意执行完一个分支后应使程序跳出

UPPER: ;显示“You Input a Uppercase Letter”的指令序列

MOV DX,OFFSET INFOR3

MOV AH,09H

INT 21H

JMP PEND

DIGIT: ;显示“You Input a Digit!”的指令序列

MOV DX,OFFSET INFOR4

MOV AH,09H

INT 21H

JMP PEND

OTHER: ;显示“You Input Other Letter!”的指令序列

MOV DX,OFFSET INFOR5

MOV AH,09H

INT 21H

PEND: MOV AH,4CH

INT 21H

CODE ENDS

END START

四、心得

通过这次上机实验,我掌握了分支程序额设计方法,宏定义及宏调用的基本方法,了解了小写字母和大写字母的ASCII码表示及其转换方法,了解了数字及其他字符的ASCII码表示方法,进一步掌握了调试工具的使用方法。 相关关键词:

python语言程序设计实验报告关于分支结构_分支程序设计实验报告|分支结构程序设计...相关推荐

  1. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记

    4.1 程序的分支结构 4.1.1 单分支结构 if : if True: print("条件正确") 4.1.2 二分支结构 if : else : if True: print ...

  2. python语言与蟒蛇_1、python语言是一种“大蟒蛇语言‘’,但是python语言却和蟒蛇没有任何关系_学小易找答案...

    [单选题]最早的显微镜是有谁发明的?( ) [简答题]已知斜度,抄画图形. [简答题]什么是程序设计? [简答题]简述承保年度制满期赔付率涵义 [单选题]筹集股权资本是企业筹集( )的一种重要方式. ...

  3. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  4. 关于python语言和人工智能哪个说法不正确_在 Windows 7 操作系统中,下列说法错误的是( )。_计算机文化基础答案_学小易找答案...

    [简答题]发布混合碱含量的测定三个锥形瓶的滴定终点颜色 [单选题]串行口工作在方式0时,其波特率:___. [简答题]使用两个数码管显示数字0--99,数字每秒钟自动加1,显示程序使用函数实现,延时在 ...

  5. python语言的单行注释以井号开头_初识Python

    Python Python开发 Python语言 初识Python 初识Python 计算机基础 计算机的组成: 输入输出设备.存储器.主板.CPU.硬盘.内存.显示器.电源.显卡. CPU:中央处理 ...

  6. python语言的编程模式是什么意思_关于 Python 语言的编程模式,哪个说法正确?_学小易找答案...

    [简答题]给出异常处理的流程.要求包括else和finally,并说明else和finally的区别. (10.0分) [单选题]关于函数,以下选项中描述错误的是() (7.0分) [多选题]Pyth ...

  7. python语言的单行注释以井号开头_《Python编程基础》

    任务2.1 掌握Python的固定语法 任务描述 Python是一门简单又优雅的语言,在使用之前,读者需要了解并掌握它的基础语法,这样有助于代码的学习和运用,并有利于保持一个良好的编程风格.读者需要认 ...

  8. python语言通过()来体现语句逻辑关系_【单选题】Python语言通过( )来体现语句之间的逻辑关系。...

    [单选题]Python语言通过( )来体现语句之间的逻辑关系. 更多相关问题 根据<民事诉讼法>的规定,当事人可以委托诉讼代理人()A.1人B.2人C.1-2人D.2-3人 根据我国< ...

  9. 计算机网络实验教程钱德沛_《计算机网络实验教程-第2版》【价格 目录 书评 正版】_中国图书网...

    实验一 网络实验入门 1 实验内容 2 实验环境及设备简介 3 网线的制作 4 交换机和路由器的基本配置 5 报文分析软件介绍 6 简单局域网组建实验 7 基于地址转换的组网实验 预习报告 实验二 数 ...

  10. 电池pack结构_一种锂电池PACK组装结构的制作方法

    本实用新型涉及锂电池组装领域,特别涉及一种锂电池PACK组装结构. 背景技术: 现有技术中,方形软包锂电池通常是采用金属外壳进行包装的,而且这些封装厚度基本都是固定的,不能提供足够的结构刚度来保护锂电 ...

最新文章

  1. ionic4 select 去掉确定取消按钮_word文档中的水印如何去掉,有三种方法,你最喜欢哪种?...
  2. Python实例介绍正则化贪心森林算法(附代码)
  3. App.config/Web.config 中特殊字符的处理
  4. Linux上日志的切割
  5. 解决MAVEN项目不扫描src下的mapper.xml文件
  6. 解决因为http_proxy代理导致的git clone失败的问题:OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to xxx:443
  7. 服务器开发设计之算法宝典
  8. SpringBoot 自带工具类~ObjectUtils
  9. vue-resource安装
  10. java中sql语句怎么把开始和结束时间作为参数写sql查询_JDBC数据库连接怎么操作?...
  11. 机器学习之 特征工程
  12. 孟子模型 | 当Bert炼丹不是玄学而是哲学
  13. SIMULATE ANNEAL
  14. 用python实现自动化办公------爬取小说天堂所有小说
  15. git将一个分支的提交合并到另一个分支
  16. Imagination发布PowerVR软件开发套件和工具包重要更新版本,含光线追踪代码示例...
  17. 淘宝四大经典骗局及防骗技巧
  18. 【Git从入门到精通】Git入门
  19. 电脑上不去无线网如何解决
  20. 这是病,得治,懂吗?

热门文章

  1. C语言内存分配函数void* malloc(size_t size)的实际分配情况
  2. 基于react + redux + ES6 + webpack + react-router的英雄联盟战绩查询应用
  3. DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks——小白解读
  4. 股票自动止损交易软件是什么?
  5. 神州数码武汉云基地面经
  6. VC数字图像处理编程
  7. android 将系统时间设置为24时制、开启HP打印服务
  8. 推荐算法基础--矩阵奇异值分解svd
  9. 零基础学数据分析,需要掌握哪些技能
  10. Typora的初步学习