第5章汇编语言程序设计 5.1顺序结构程序设计 5.2分支结构程序设计 5.3循环结构程序设计 5.4子程序设计 5.5模块化程序设计 5.6常用D0s中断调用
第5章 汇编语言程序设计 5.1 顺序结构程序设计 5.2分支结构程序设计 5.3循环结构程序设计 5.4子程序设计 5.5模块化程序设计 5.6常用Dos中断调用 1
汇编语言程序设计的基本过程,可以分为以下几步: 1.分析问题,明确要求。 2.建立数学模型。 3.确定算法。 4.画出程序的流程图。 5.编写程序,上机调试。 6.整理资料,投入使用。 汇编语言程序设计,应采用模块化和结构化的设计方法。 888 2
汇编语言程序设计的基本过程,可以分为以下几步: 1.分析问题,明确要求。 2.建立数学模型 。 3.确定算法。 4.画出程序的流程图 。 5.编写程序,上机调试。 6.整理资料,投入使用 。 汇编语言程序设计 汇编语言程序设计,应采用模块化和结构化的设 应采用模块化和结构化的设计方法。 2
5.1顺序结构程序设计 顺序结构程序是指完全按先后顺序逐条执行指令序列的程序,● 既不跳转也不循环,从头到尾一条一条执行语句。单独的 顺序结构程序完成的功能相对简单,很多情况下都是顺序、 分支、循环、子程序结构相结合,这样的程序可以具有更 大的功能。如图5.1所示。 开始→语句1→ ..>语句n>结束 见课本图5.1顺序结构程序流程图
5.1 顺序结构程序设计 顺序结构程序是指完全按先后顺序逐条执行指令序列的程序, 既不跳转也不循环,从头到尾一条一条执行语句。单独的 顺序结构程序完成的功能相对简单,很多情况下都是顺序 、 分支、循环、子程序结构相结合,这样的程序可以具有更 大的功能。如图5.1所示。 开始 Æ语句 1 Æ ….. Æ语句 n Æ结束 见课本图5.1 顺序结构程序流程图 3
例题5.1 键盘输入任一按键,用十进制输出相应按键的ASCII值 分析:问题的求解并不复杂,首先从键盘接收一个 按键,键的ASCII值一定在0到255之间,最多是十 进制的3位数。作为整数是不能直接输出的,应先 把这个值除以100,得到商是百位数字,再把刚才 的余数除以10,商是十位数字,余数是个位数字, 把这3个数字分别加上30H,则转换成相应的ASCII 码,在回车换行后依次输出
例题5.1 键盘输入任一按键,用十进制输出相应按键的ASCII值。 分析:问题的求解并不复杂,首先从键盘接收一个 按键,键的ASCII值一定在0到255之间,最多是十 进制的3位数。作为整数是不能直接输出的 作为整数是不能直接输出的,应先 把这个值除以100,得到商是百位数字,再把刚才 的余数除以10,商是十位数字,余数是个位数字 余数是个位数字, 把这3个数字分别加上30H,则转换成相应的ASCII 码,在回车换行后依次输出。 4
CODE SEGMENT ADD AH,30H ASSUME CS:CODE MOV BX,AX;AX存放十位 START:MOV AH,1 数字和个位数字 NT21H;读入一个按键 MOV AH,2 MOV AH,0;AX保存按键的 MOV DL,13 ASC INT 21H ;输出回车 MOV BL,100 MOV DL,10 DVBL;ASCI除以100, INT 21H ;输出换行 取百位数字 MOV DL,CL MOV CL,AL;CL存放百位 INT 21H 数字 ;输出百位数字 MOV DL,BL ADD CL,30H;CL存放百位 数字的ASCⅡ INT 21H ;输出十位数字 MOV AL,AH MOV BL,BH MOV AH,0 INT 21H ;输出个位数字 MOV BL,10 MOV AH,4CH DIV BL ;ASCⅡ除以10, INT 21H 取十位数字 CODE ENDS ADD AL,30H END START ●
CODE SEGMENT ADD AH, 30H ASSUME CS:CODE START: MOV AH, 1 INT 21H ;读入 一个按键 , MOV BX, AX ;AX存放十位 数字和个位数字 MOV AH, 2 INT 21H ;读入 个按键 MOV AH, 0 ;AX保存按键的 ASCII MOV BL 100 , MOV DL, 13 INT 21H ;输出回车 MOV BL, 100 MOV DL 10 DIV BL ;ASCII除以100, 取百位数字 MOV CL AL ;CL存放百位 MOV DL, 10 INT 21H ;输出换行 MOV DL, CL MOV CL, AL ;CL存放百位 INT 21H ;输出百位数字 数字 ADD CL, 30H ;CL存放百位 数字的 ASCII INT 21H ;输出百位数字 MOV DL, BL INT 21H ;输出十位数字 OBB 数字的MOV AL, AH MOV AH, 0 MOV BL 10 M OV BL, B H INT 21H ;输出个位数字 MOV AH, 4CH MOV BL, 10 DIV BL ;ASCII除以10, 取十位数字 ADD AL 30H INT 21H CODE ENDS ADD AL, 30H END START 5