实验四-分支结构程序设计实验-张鹏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四分支结构程序设计实验_张鹏
一、实验目的
1.掌握分支结构程序设计的基本设计方法;
2.掌握条件转移指令和无条件转移指令的使用方法;
3.掌握指令对标志寄存器中各标志位的影响情况;
4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。
二、实验要求
1.学会使用DEBUG的T命令,跟踪检查指令对标志位的影响情况;
2.学会使用DEBUG中的P命令,对INT指令的跟踪方法;
3.学会利用设置断点调试程序的方法;
4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。
三、实验内容
1.编写程序,已知在DATA开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。
2.编写程序,已知在DATA开始的内存单元中,连续存放着三个带符号数据,判断三个数是否同号,若同时为正,则在屏幕上显示“+”号,若同时为负,则在屏幕上显示“-”号,否则显示“*”号。
3.编写程序,从键盘接收字符,判断该字符是否为字母、数字或非字母也非数字类字符。若为字母,则在屏幕上显示“L”;若为数字,则在屏幕上显示“D”;若为非字母也非数字,则在屏幕上显示“O”。
4.编写程序,已知DATAX和DATAY单元各存放一个带符号字节数据,从键盘上接收加(+)、减(-)、乘(*)或除(/)号,完成相应运算,结果在屏幕上显示出来。
⑴当输入“+”号时,计算X+Y,并以十六进制形式显示出来;
⑵当输入“-”号时,计算X-Y,并以十六进制形式显示出来;
⑶当输入“*”号时,计算X*Y,并以十六进制形式显示出来;
⑷当输入“/”号时,计算X/Y,并以十六进制形式显示出来;
5.编写程序,从键盘输入若干个任意字符,如果是小写字母a~z之间的字符,
请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。
四、源程序
4.1:
DSEG SEGMENT
HTAB DB '0123456789ABCDEF'
MIN DB 0
MAX DB 0
DATA00 DB 37H
DATA DB 3AH
DATA1 DB 0
DATA2 DB 0
DATA3 DB 0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AH,01H ;第1个数
INT 21H
CMP AL,DATA
JA CASE00
SUB AL,30H
JMP CASE000
CASE00: SUB AL,DATA00
CASE000:MOV DATA1,AL
MOV DL,','
MOV AH,02H
INT 21H
MOV AH,01H ;第2个数 INT 21H
CMP AL,DATA
JA CASE01
SUB AL,30H
JMP CASE011
CASE01: SUB AL,DATA00 CASE011:MOV DATA2,AL
MOV DL,','
MOV AH,02H
INT 21H
MOV AH,01H ;第3个数 INT 21H
CMP AL,DATA
JA CASE02
SUB AL,30H
JMP CASE022
CASE02: SUB AL,DATA00 CASE022:MOV DATA3,AL
MOV DL,';'
MOV AH,02H
INT 21H
MOV CL,DATA1
MOV CH,DATA2
CMP CL,CH
JBE CASE1 ;DATA1小于等于DATA2
JA CASE2 ;DATA1大于DATA2
CASE1: MOV DH,DATA3
CMP CL,DH
JBE CASE11 ;DATA1小于等于DATA3
JA CASE12 ;DATA1大于DATA3
CASE11: MOV MIN,CL
CMP CH,DH
JBE CASE111 ;DATA2小于等于DATA3
JA CASE112 ;DATA2大于DATA3
CASE12: MOV MIN,DH
MOV MAX,CH
JMP SHOW
CASE111:MOV MAX,DH
JMP SHOW
CASE112:MOV MAX,CH
JMP SHOW
CASE2: CMP CH,DH
JBE CASE21 ;DATA2小于等于DATA3
JA CASE22 ;DATA2大于DATA3
CASE21: MOV MIN,CH
CMP CL,DH
JBE CASE211 ;DATA1小于等于DATA3 JA CASE212 ;DATA1大于DATA3
CASE22: MOV MIN,DH
MOV MAX,CL
JMP SHOW
CASE211:MOV MAX,DH JMP SHOW
CASE212:MOV MAX,CL JMP SHOW SHOW: MOV CH,MIN MOV DH,MAX
AND DH,0FH MOV AL,DH
LEA BX,HTAB
XLAT
MOV DL,AL
MOV AH,02H
INT 21H
MOV DL,','
MOV AH,02H
INT 21H
AND CH,0FH
MOV AL,CH
XLAT
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH INT 21H CSEG ENDS