您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页实验4分支结构(精)

实验4分支结构(精)

来源:步遥情感网


实验四 分支结构程序设计实验

一、实验目的

1.掌握分支结构程序设计的基本设计方法;

2.掌握条件转移指令和无条件转移指令的使用方法; 3.掌握指令对标志寄存器中各标志位的影响情况;

4.掌握多分支结构程序设计的三种方法:树型结构法、地址常数表法和指令常数表法。 二、实验要求

1.学会使用DEBUG 的T 命令,跟踪检查指令对标志位的影响情况; 2.学会使用DEBUG 中的P 命令,对INT 指令的跟踪方法; 3.学会利用设置断点调试程序的方法;

4.了解大写、小写字母及数字在计算机内的表示方法及转换方法。 三、实验内容

1.编写程序,已知在DATA 开始的内存单元中,连续存放着三个一位十六进制数,找出其中最大数及最小数,存放在指定的内存单元中。 2.编写程序,从键盘输入若干个任意字符,如果是小写字母a ~z 之间的字符,请将它们转换成相应的大写字母,若为其它字符,则保持不变,将转换后的新字符保存在指定的存储单元中。 四、解题思路

1.先对DATA 内存单元连续存放三个一位十六进制数。先对DATA 内存单元里的前两个数据比较,较大的数据再和第三个数据比较,从而得到最大数据存到MAX 内存单元

里。把两次比较得到的两个较小的数据进行比较,从而得到最小数据存到MIN 内存单元里。两个无符号数据比较后,用JA/JNBE、JAE/JNB/JNC/、JB/JNAE/JC和JBE/JNA来判别两数的大小关系,这些条件转移指令是把进位标志CF 和零标志位ZF 结合起来判别的。

2.先开辟20个字节的内存单元DATA 用来存储输进来字符串和修改后的字符串。对字符串的输入是以‘#’为结束字符的,当字符的个数少于20时,只要输入的字符串是以‘#’结尾,就代表字符串输入结束(其中结束字符‘#’也是字符串中的一个字符存储到内存单元里)。每次输入一个字符,就对其进行判别。若输入的字符在字符‘a ’到‘z ’之间,那么就对其进行转换成对应的大写字母(方法把小写字母的值减去32即可),然后再存到指定的内存单元中;否则,直接把输入的字符存到指定的内存单元中去。存储结束,要对输入的字符与字符‘#’比较,若不相等,就跳到下次输入,进行新的输入;否则,表示输入结束,

并对内存单元里存储的字符进行输出。 五、程序清单并注释及程序流程图 1. 源程序

SSEG SEGMENT STACK ;设置堆栈段 STK DB 20 DUP (0 SSEG ENDS DSEG SEGMENT

DATA DB 15H,0AH,05H ;DATA 内存单元中连续存放三个一位十六进制数 MAX DB? ;存最大值 MIN DB? ;存最小值 DSEG ENDS CSEG SEGMENT

ASSUMECS: CSEG, DS: DSEG ASSUME SS: SSEG START: MOV AX, DSEG MOV

DS, AX MOV AX, SSEG

MOV SS, AX

MOV SP, SIZE STK

LEA SI,DATA ;取DATA 首地址

MOV AL, [SI] MOV BL, [SI+1]

CMP AL,BL;比较前两个数 JAE FMAX1

MOV AH,AL;交换数据 MOV AL, BL MOV BL, AH FMAX1:CMP AL,[SI+2];较大的与第三个数比较 JAE FMIN1

MOV AL,[SI+2];保存最大值

JMP MOVE FMIN1:CMP BL,[SI+2];两个较小的数比较 JAE FMIN2 JMP MOVE

FMIN2:MOV BL,[SI+2];保存最小值 MOVE: MOV MAX, AL MOV MIN, BL

MOV AH, 4CH

INT 21H CSEG ENDS

END START

2. 源程序 DSEG ENDS CSEG SEGMENT

ASSUME CS: CSEG, DS: DSEG ASSUME SS: SSEG START: MOV AX, DSEG MOV DS, AX MOV AX, SSEG MOV SS, AX

MOV SP, SIZE STK

LEA SI,DATA ;取内存单元首地址INPUT:MOV AH,01H ;输入字符 INT 21H

CMP AL,'a' ;与‘a ’比较 JB FUZHI

CMP AL,'z' ;与‘z ’比较 JA FUZHI

SUB AL,'a'-'A';小写转换大写 FUZHI:MOV [SI],AL;存储结果 INC SI

CMP AL,'#';判别是否结束 JNE INPUT MOV AH, 4CH INT 21H CSEG ENDS

END START

六、运行结果 1. 第一题

2. 第二题

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务