语言程序设计顺序与分支程序设计文档格式.docx
- 文档编号:14953159
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:41
- 大小:121.71KB
语言程序设计顺序与分支程序设计文档格式.docx
《语言程序设计顺序与分支程序设计文档格式.docx》由会员分享,可在线阅读,更多相关《语言程序设计顺序与分支程序设计文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
CODE,DS:
DATE
START:
MOVAX,DATE;
代码段
MOVDS,AX;
初始化ds寄存器
MOVAH,1
INT21H;
读文件到缓冲区
CMPAL,33H;
比较指令
JBL0;
A<
B
CMPAL,36H
JAL0
ANDAL,0FH;
逻辑与指令
MOVX,AL;
al给x
MOVAL,X
CMPAL,3H
JEL1;
执行L1命令
CMPAL,4H
JEL4;
执行L4命令
CMPAL,5H
JEL6;
执行L6命令
CMPAL,6H
JEL7;
执行L7命令
L1:
MULAL
ADDAL,X;
al+x
L5:
MOVBL,AL
MOVCL,4
SHRAL,CL;
移位指令
CMPAL,9
JLEL2;
转移指令。
小于或等于,或者不大于则转移
ADDAL,7
L2:
ADDAL,30H;
寄存器al加0x30
MOVDL,AL
MOVAH,2;
把2放入ah里
INT21H
ANDBL,0FH;
逻辑与运算指令
CMPBL,9
JLEL3
ADDBL,7;
相加
L3:
ADDBL,30H
MOVDL,BL
MOVAH,2
JMPL0
L4:
SUBAL,X
JMPL5
L6:
L7:
SHRAL,1
L0:
MOVAH,4CH
CODEENDS
ENDSTART
实验七
DATASEGMENT
XDB0
YDB0
WDB0
DATAENDS
ASSUMECS:
DATA
START:
MOVAX,DATA
MOVDS,AX
XORAX,AX
CMPAL,39H
JBEL1
SUBAL,07H
SUBAL,30H
MOVX,AL
JBEL2
MOVY,AL
A:
CMPAL,41H
JNEB
XORAL,AL
ADDAL,Y
MOVW,AL
JMPL3
B:
CMPAL,42H
JNEC
SUBAL,Y
CMPAL,0
JGL3
NEGAL
C:
CMPAL,43H
JNED
MULY
D:
XORAX,AX
DIVY
MOVDL,AL
MOVCL,4
SHRDL,CL
CMPDL,9
JNAL4
ADDDL,07H
ADDDL,30H
MOVAH,02H
MOVDL,W
ANDDL,0FH
JNAL5
MOVAH,4CH
CODEENDS
ENDSTART
4、实验结果:
实验六结果
实验七结果
5、实验心得:
(1)通过实验使我知道了和熟悉了汇编程序设计的步骤
1.建立数学模型遇到一个题目,首先要进行全面的分析,根据问题提出的条件,特点,找出规律,找出问题的数学模型或者制定解决问题的规律。
2.绘制程序流程图流程图能够把比较抽象的问题变得而形象化,并且有助于理清楚思路,便于程序的编制,在程序的易读性和易维护性上有很大的帮助。
3.合理分配存储空间和寄存器汇编语言能够直接的调用存储器和寄存器。
程序运行时,大两量的数据,中间结果或最后的结果都存放在存储器中,且运行的程序目标代码在存储器中,节约空间是一个好的程序应该注意的问题。
4.编制程序根据语法指令编制程序
5.人工检查用人工的方式检查程序是否有错,并及时的改正。
6.上机调试只有通过上机才能验证程序是否正确,经过反复的运行调试,才能得到正确的程序。
(2)掌握了分支程序的结构及分支程序的设计,调试方法和数据传送及算术和逻辑运算指令的用法。
实验二循环与子程序程序设计
一、实验目的
1)加深对循环结构的理解。
2)掌握循环程序的设计方法。
3)学习子程序的定义和调用方法。
4)掌握子程序、子程序的嵌套、递归子程序的结构。
5)掌握子程序设计、编制及调试。
6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容
1)编制在屏幕上显示九九乘法表的程序。
2)编制在屏幕上显示用*组成的三角形的程序。
实验一
S2DB?
S1DB?
XDB1
YDB1
SDB0AH
FCH=2AH
FDH=3DH
FKG=20H
FHH=0AH
FHC=0DH
STACK1SEGMENTSTACK
DB20HDUP(0)
STACK1ENDS
DATA,SS:
STACK1
MOVDS,AX
MOVCL,9
LL1:
PUSHCX;
将CL压入堆栈段
MOVCL,Y
LL2:
CALLL1;
调用子程序L1
INCX
LOOPLL2
MOVX,1
INCY
MOVDL,FHH;
输出换行和回车
MOVAH,2
INT21H
MOVDL,FHC
POPCX;
从堆栈段中取出CL
LOOPLL1
MOVAH,4CH;
程序结束
L1PROC;
计算X*Y=Z并且输出X*Y=Z的子程序
MOVDL,X
ADDDL,30H
MOVDL,FCH
MOVDL,Y
MOVDL,FDH
MOVAL,X
MULY
DIVS
MOVS1,AH
ADDAL,30H
ADDS1,30H
MOVDL,S1
MOVDL,FKG;
输出空格
RET
L1ENDP;
子程序结束
实验二
NDB?
CODESSEGMENT
CODES,DS:
MOVAH,1;
输入一位16进制数确定输出行数INT21HCMPAL,39HJBEL1SUBAL,07H
L1:
SUBAL,30HMOVN,AL
XORBX,BX
MOVCL,N
LOP:
PUSHCX
INCBL
MOVCL,BL
LOP2:
MOVAH,02H
LOOPLOP2
POPCX
MOVDL,0AH
CMPBL,9
JZL2
LOOPLOP
L2:
CODESENDS
实验一结果
实验二结果
5、实验心得
6、循环程序由初始化部分、循环部分、调整部分、控制部分组成
1〉两种方式,一种是先判断在执行,另一种是先执行再判断。
2〉两种控制循环的方式
a〉计数控制循环
一般使用LOOP指令,要先将循环的次数放入CX中,在多重循环的计数控制中要注保存和复原上一次循环的断点信息,在保留和复原时可以使用堆栈进行处理。
自认为可以理解为一根盘绕了确定的圈数的绳子,又进入的头,又出去的尾。
b〉条件控制循环
一般使用JMP指令使程序跳到这一段的开头,用CMP在循环中进行比较判断,再根据程序要求,选择适当的转移条件,跳出循环。
自认为可以理解为一圆形的导轨,并在导轨上设置一个初口,在符合条件时就在导轨上脱离,否则,将会在导轨上一直的转下去。
3〉再循环中可以同时使用两者,当即已知循环的次数限制范围,但又要求在符合条件时结束循环是,就要同时使用两者。
7、子程序的使用大大的简化了程序设计的思路,在完成一个程序时,可以简单的把一个程序划分为几个完整的几部分,使每一部分独立的完成特定的一部分和计算任务。
子程序的使用还可以大大的减小程序的体积,在一程序中,如果需要多次反复的是用某一段代码的话,就可以将这段代码设定为子程序,以后想使用时,只要一CALL再一RET就OK啦。
我认为使用子程序的关键在于明白子程序的机理,明白子程序是如何保存和恢复断点的信息的,只有真正的理解了这一点才能更好地利用好子程序。
子程序的参数传递的方式有很多种,但是在堆栈段传递参数时,应该注意使用带立即数的返回的方式,在利用寄存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 顺序 分支 程序设计