汇编语言程序设计教案.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《汇编语言程序设计教案.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计教案.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计第七讲第七讲课题二课题二 基本程序结构基本程序结构 程序流程图 顺序程序设计 分支程序设计 循环程序设计 子程序设计汇编程序设计的一般步骤1.分析问题,建立数学模型2.确定算法3.编制程序流程图4.合理分配存储空间和寄存器5.编制程序6.调试程序一、程序流程图(a)处理框 (b)判断框 (c)起止框 (d)连接框 (e)流向线AX=0?YN开始结束流程图的组成流程图主要由以下几种框图符号组成:一、程序流程图例:判断两无符号数大小的流程图开始AX 无符号数1BX 无符号数2AXBX=0?显示 AX=BXAXBX 0?显示 AX BX显示 AX BX结束YNNY二、顺序程序设计顺序
2、程序结构是最简单、最基本的程序结构;无任何分支,从流程图上看,只有起止框和处理框,无判断框;二、顺序程序设计例:将AL中的两位十进制数分别转换为它们相应的ASCII码,分别存放在BH和BL中。解:CODE SEGMENT ASSUME CS:CODESTART:MOV BL,AL MOV BH,AL AND BL,0FH OR BL,30H MOV CL,4 SHR BH,CL OR BH,30H MOV AH,4CH INT 21H CODE ENDS END START附:汇编程序上机运行过程第一步:编辑源文件第一步:编辑源文件 (生成.ASM文件)EDIT XXX.ASM 说明:在EDI
3、T环境中,按Alt+F调出菜单后可选择存盘退出。第二步:汇编源文件第二步:汇编源文件 (生成.OBJ文件)MASM XXX 说明:1、文件名XXX后面可不带扩展名,缺省为.asm 2、运行masm后,可连续按提示进行下一步操作,选择默认值可直接回车。如有错误需回到第一步修改。附:汇编程序上机运行过程第三步:连接目标文件第三步:连接目标文件 (生成.EXE文件)LINK XXX 说明:1、汇编通过后,连接一般都可通过并获得EXE文件。2、此命令中文件名XXX不需带扩展名。缺省为.obj第四步:运行可执行文件第四步:运行可执行文件 XXX (在DOS下直接运行)或DEBUG XXX.EXE (在D
4、EBUG中运行)三、分支结构程序设计分支结构也叫选择结构;在程序运行中,执行哪条指令是由CS和IP决定的,在程序运行的过程中改变CS和IP,就是改变了程序的流向,从而得到分支、循环、子程序等程序结构;分支结构的实现须借助于程序转移指令程序转移指令的控制;附:转移指令转移指令分为两种:l无条件转移指令无条件转移指令l条件转移指令条件转移指令1、无条件转移指令、无条件转移指令格式:格式:JMP 目标目标说明:说明:l目标通常用标号来表达,根据转移的远/近、直接/间接不同,可有以下几种格式:JMP 标号标号 ;段内直接转移JMP CX ;段内间接转移JMP WORD PTR BX ;段内间接转移JM
5、PFAR PTR 标号 ;段间直接转移JMP DWORD PTR BXSI ;段间间接转移2、条件转移指令、条件转移指令基本格式:基本格式:JXX 目标目标说明:说明:l字母“J”后面的“XX”是指“条件”,如果条件成立,则转移至“目标”处执行,否则顺序执行。l条件转移指令共18条,它们均以F寄存器中状态标志位作为判断条件,但执行后均不影响各标志位。l此类指令都只能在以当前IP内容为中心的 128 至127字节范围内转移(短转移)。超过要修改程序。2、条件转移指令、条件转移指令这18条指令又可分为三大类:l简单条件转移指令l无符号数条件转移指令l带符号数条件转移指令表一 简单条件转移指令标志位
6、标志位指指 令令转移条件转移条件含含 意意JCJNCCF=1CF=0有进/借位无进/借位CFZFSFOFPFJE/JZJNE/JNZZF=1ZF=0相等/等于0不相等/不等于0JSJNSSF=1SF=0是负数是正数JOJNOSF=1SF=0有溢出无溢出JP/JPEJNP/JPOSP F=1SF=0有偶数个1有奇数个1表二 无符号数条件转移指令指指 令令转移条件转移条件含含 意意JA/JNBECF=0 且且 ZF=0JAE/JNBA BA B表三 有符号数条件转移指令指指 令令转移条件转移条件含含 意意JG/JNLESF=OF 且且 ZF=0JGE/JNLA B A B三、分支结构程序设计例:判
7、断两无符号数的大小解:DATA SEGMENT DA1 DB?DA2 DB?A_MESSAGE DB AB,$B_MESSAGE DB BA,$DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,DA1 MOV BL,DA2 CMP AL,BL JA ABIG MOV DX,OFFSET B_MESSAGE MOV AH,9 INT 21H FINISH:MOV AH,4CH INT 21H ABIG:MOV DX,OFFSET A_MESSAGE MOV AH,9 INT 21H J
8、MP FINISH CODE ENDS END START练习练习已知AL中存放某ASCII码,试编制程序,判断该ASCII码代表的是数字,小写英文字母还是大写英文字母?用Int 21H中9号功能显示结果。参考答案参考答案DATA SEGMENT N_MSG DB Number,$L_ MSG DB Lowercase,$C_MSG DB Capital,$OTHERS DB OHTERS,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AL,11H打开程序文件参考答案参考答案(续续)CM
9、P AL,30H JB OTHER CMP AL,39H JBE N CMP AL,41H JB OTHER CMP AL,5AH JBE C CMP AL,61H JB OTHER CMP AL,6AH JBE L JMP OTHER参考答案参考答案(续续)N:MOV DX,OFFSET N_MSG MOV AH,9 INT 21H JMP ENDINGL:MOV DX,OFFSET L_MSG MOV AH,9 INT 21H JMP ENDINGC:MOV DX,OFFSET C_MSG MOV AH,9 INT 21H JMP ENDING参考答案参考答案(续续)OTHER:MOV D
10、X,OFFSET OTHERS MOV AH,9 INT 21HENDING:MOV AH,4CH INT 21HCODE ENDS END START四、循环程序设计1循环程序结构循环程序结构初始化部分处理部分修改计数器及指针循环结束?结束处理部分YN循环控制部分2为何需要循环?为何需要循环?简化程序的编制简少程序对内存的占用。3如何实现循环?如何实现循环?使用条件转移指令:Jxx 目标使用循环控制指令:LOOP 目标 等 4循环控制指令循环控制指令 80868088循环控制指令共有四条,下面介绍其中一条最常用指令:LOOP指令:l指令格式:指令格式:LOOP 目标目标 l指令功能:指令功能
11、:自动进行循环次数的计数(即CXCX1)后,如计数寄存器CX0,则转移到目标单元,否则顺序执行。相当于这两条指令:DEC CX JNZJNE 目标l 说明:说明:l 此指令隐含使用CX作为循环计数器;l 因此应注意先设置好CX的初始值。例:计算:12320。结果存入AX寄存器。CODE SEGMENT ASSUME CS:CODESTART:MOV CX,0014H MOV AX,0 A:ADD AX,CX LOOP A CODE ENDS END START 初始化部分 处理部分 循环控制部分练习在数据段定义一段长度为100字节的数据区,其各单元内容任意。然后统计该区中有多少个存储单元的内容
12、小于或等于5(按无符号数比较)。将统计结果放在DL中。参考答案:data segment dat db 100 dup(?)data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax参考答案(续):mov si,offset dat mov dl,0 mov cx,100next:cmp byte ptr si,5 jbe count inc si loop next jmp endingcount:inc dl inc si loop nextending:mov ah,4ch int 21hcode end
13、s end start五、子程序设计调用:调用:在主程序中使用命令:CALL 过程名返回:返回:在子程序中使用命令:RET 结构:结构:主程序子程序1子程序2 过程(子程序)的定义过程(子程序)的定义 l过程定义伪指令的格式如下:过程名过程名 PROC (NEARFAR)RET RET 过程名过程名 ENDPl说明:NEARFAR:距离类型。NEAR表示此过程仅能供段内其他程序调用。过程必须在一个逻辑段内。一个过程可能有多个RET指令,RET指令可以在过程中的任何位置,不一定放在一个过程的最后,但一个过程执行的最后一条指令必定是RET。子程序的一些问题子程序的一些问题l子程序的嵌套l子程序的递
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 教案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内