3_分支程序设计实验
时间:2025-04-20
时间:2025-04-20
2.3 分支程序设计实验
班级:软件1101
学号:04113033
姓名:岳彦利
1. 实验目的
1、掌握分支程序的设计方法。
2、掌握宏定义及宏调用的基本方法。
3、了解小写和大写字母的ASCII码表示及其转换方法。了解数字及其它字符在的ASCII码表示方法。
4、进一步掌握调试工具的使用方法
2. 实验预习要求
1.复习比较指令、条件转移指令的用法。
2.复习宏定义及宏调用的基本方法。
3.程序框架中显示提示信息的指令序列用宏调用实现。
3.实验内容
从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。若输入为小写字母,显示“You Input a Lowercase Letter!”;若输入为大写字母,显示“You Input a Uppercase Letter!”;若输入为数字,显示“You Input a Digit!”;若输入为其它字符,显示“You Input Other Letter!”。
1、编程指导
数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH,小写字母的ASCII码为61H~7AH。本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。
2、流程图及程序框图
(1)流程图
4.我的程序
data segment
infor1 db 0ah,0dh,"please press any key to imput 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 another 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
;从键盘接收一个字符
mov ah,01h
int 21h
;mov dx,offset infor1
;mov ah,09h
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
5.我选做的习题:
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!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
我的程序:
data segment
infor1 db 0ah,0dh,"1.........panda"
db 0ah,0dh,"2.........cat"
db 0ah,0dh,"3.........rabbit"
db 0ah,0dh,"4.........pig"
db 0ah,0dh,"5.........exit"
db 0ah,0dh,"(please choose1,2,3,4,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 don't like pig$"
infor11 db 0ah,0dh,"you press an error key$"
data ends
code segment
assume ds:data,cs:code
start: mov ax,data
mov ds,ax
mov dx,offset infor1
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
other:
mov dx,offset infor11
mov ah,09h
int 21h
jmp pend
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
pend: mov ah,4ch
int 21h
code ends
end start
6.实验小结
经过这次实验,我更加深入学习了分支指令的实现,对我的编程能力也是一个很大的提高。
…… 此处隐藏:821字,全部文档内容请下载后查看。喜欢就下载吧 ……