实验四 分支结构程序设计实验_张鹏
- 格式:doc
- 大小:47.00 KB
- 文档页数:13
东北大学 自动化 张鹏 977243628@qq.com 实验四 分支结构程序设计实验_张鹏 一、实验目的 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之间的字符,东北大学 自动化 张鹏 977243628@qq.com 请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。 四、源程序 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 东北大学 自动化 张鹏 977243628@qq.com 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 东北大学 自动化 张鹏 977243628@qq.com 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 东北大学 自动化 张鹏 977243628@qq.com 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 东北大学 自动化 张鹏 977243628@qq.com END START 4.3: DSEG SEGMENT HTAB DB '0123456789ABCDEF'
DATA1 DB 30H DATA2 DB 39H DATA3 DB 41H DATA4 DB 5AH DATA5 DB 61H DATA6 DB 7AH
DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX
MOV AH,01H ;第1个数 INT 21H MOV DH,AL
MOV DL,',' MOV AH,02H INT 21H
CMP DH,DATA1 JB CASEN ;DH小于DATA1 CMP DH,DATA2 东北大学 自动化 张鹏 977243628@qq.com JBE CASED ;DH小于等于DATA2 CMP DH,DATA3 JB CASEN ;DH小于DATA3 CMP DH,DATA4 JBE CASEL ;DH小于等于DATA4 CMP DH,DATA5 JB CASEN ;DH小于DATA5 CMP DH,DATA6 JBE CASEL ;DH小于等于DATA6 JA CASEN
CASEN: MOV DL,'O' MOV AH,02H INT 21H MOV DL,'T' MOV AH,02H INT 21H MOV DL,'H' MOV AH,02H INT 21H MOV DL,'E' MOV AH,02H INT 21H MOV DL,'R' MOV AH,02H INT 21H JMP CASEEND
CASEL: MOV DL,'L' MOV AH,02H 东北大学 自动化 张鹏 977243628@qq.com INT 21H MOV DL,'E' MOV AH,02H INT 21H MOV DL,'T' MOV AH,02H INT 21H MOV DL,'T' MOV AH,02H INT 21H MOV DL,'E' MOV AH,02H INT 21H MOV DL,'R' MOV AH,02H INT 21H JMP CASEEND
CASED: MOV DL,'D' MOV AH,02H INT 21H MOV DL,'A' MOV AH,02H INT 21H MOV DL,'T' MOV AH,02H INT 21H MOV DL,'A' MOV AH,02H INT 21H