分支程序设计实验报告
实验二 二 分支程序设计 一、实验目得: 1 、学习分支程序得设计方法 2 、熟悉在 PC 机上建立、汇编、连接、调试与运行汇编语言程序得过程 二、实验环境:
硬件环境
IBM/ PC 及其兼容机 软件环境
统 操作系统 DO S
编辑程序 EDIT 或其她编辑程序
序程编汇ﻩ 汇编程序 M ASM 、E XE
连接程序LIN K、EXE 序 调试程序 DEB UG 、EXE 三 、 实验内容:
:
1 、在屏幕上显示如下信息:
1 —-— —- -- -- -- —- —---— — ---- -- —-Panda
2— —- --— — --- —- —- ———- ----— —- —--Cat
ﻩ
3-——- ---- -- ---- -- -———- -——-Ra bbit
4— — -— —-— — -— —--— — --- —- -- ——--- ---Pig
5 —— ---- -- —-- —-- —- —---— —- -- —EXI T
(Plea se
ch oo se 1, 2, 3,4or 5 )—- ---- 入 若输入 1, 显示“I like e
p panda ”后程序结束;若输入 2, 显示“I
lik e cat” ”后程序结束; 若输入 3 ,显示“I
lik e rab bit t入 ”后程序结束;若输入 4, 显示“I do n’t l like pig ”后程序结束; 若输入 5 ,程序直接结束; 若输入其它字符,显示“You
pr ess an error key !" 后程序结束. 1) 流程图
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
;代码段开始 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
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:
8ROFNI TESFFO,XD VOMﻩ H90,HA VOMﻩ H12 TNIﻩ JMP PEND Rabbit:
MOV DX,OFFSET INFOR9
MOV AH,09H
H12 TNIﻩ
JMP PEND Pig:
MOV DX,OFFSET INFOR10
H90,HA VOMﻩ INT 21H
JMP PEND Other:
MOV DX,OFFSET INFOR11
MOV AH,09H
H12 TNIﻩ
JMP PEND PEND:
MOV AH,4CH
INT 21H CODE
ENDS
END START
2、 、 从键盘输入一字符,判断该字符就是小写字母、大写字母、数字或其它字符.若输入为小写字母, 显示“Y You
I nput a Lo wer case Letter !”;若输入为大写字母, 显示“You Inp ut a Uppercase L et ter !”; 若输入为数字,显示“Yo ou Input a Digit !";
若输入为其它字符,显示“You Inpu t
Ot her Let tt er !”。
1 、 编程指导 字 数字 0 9得ASC II 码为30H 39H; 大写字母得 ASCII 码为 4 1H 5AH,小写字母得AS CI I码为61H 7AH 。本题目将字符分为小写字母、大写字母、数字及其它字符,得 根据键入字符得 AS CII 码值判断其所属类型, 并显示相应得信息 息. 字符串显示使用功能号为 09H 得 得 DOS 功能调用, 接收键盘输入得单个字符使为 用功能号为 01H 得 得 DOS 功能调用。
2、 流程图及程序框图 1)流程图 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
H90,HA
VOMﻩ
INT
21H
MOV AH,01H
INT 21H 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’ 输入得就是小写字母,显示信息 输入得就是大写字母,显示信息 输入得就是数字,显示有关信息 输入得就是其它字符,显示信息
CMP
AL,’0’
JB
OTHER
CMP
AL,’9’
JBE
DIGIT
CMP
AL,’A"
REHTO
BJﻩ "Z',LA
PMCﻩ REPPU
EBJﻩ CMP
AL,’a’
JB
OTHER
"z',LA
PMCﻩ JBE
LOWER
JMP
PEND LOWER:
;显示“You Input a Lowercase Letter!”得指令序列
MOV DX,OFFSET INFOR2
H90,HA VOMﻩ INT 21H
出跳序程使应后支分个一完行执意注;
DNEP PMJﻩUPPER:
; 显示“You Input a Uppercase Letter”得指令序列 MOV DX,OFFSET INFOR3
H90,HA VOMﻩ H12 TNIﻩ DNEP PMJﻩDIGIT:
; 显示“You Input a Digit!"得指令序列 MOV DX,OFFSET INFOR4
H90,HA VOMﻩ INT 21H
JMP PEND OTHER:
; 显示“You Input Other Letter!”得指令序列
5ROFNI TESFFO,XD VOMﻩ MOV AH,09H
H12 TNIﻩPEND:
MOV AH,4CH
H12 TNIﻩCODE
ENDS
END START
四、 心得 通过这次上机实验, 我掌握了分支程序额设计方法, 宏定义及宏调用得基本方法,了解了小写字母与大写字母得ASCII 码表示及其转换方法,了解了数字及其她得 字符得 AS CII 码表示方法, 进一步掌握了调试工具得 使用方法。