微型计算机原理与接口技术第五章.ppt
《微型计算机原理与接口技术第五章.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术第五章.ppt(80页珍藏版)》请在三一办公上搜索。
1、第5章 汇编语言程序设计汇编语言程序的步骤:1)明确任务,确定算法。2)绘流程图。3)根据流程图编写汇编语言程序。4)上机调试程序。,图5-1 标准流程图符号,5.1 汇编语言程序的上机过程1、源文件的建立和汇编(1)建立源程序文件(2)汇编源程序文件汇编程序主要功能:检查源程序中的语法错误并给出出错信息。产生目标文件,列表文件和对照文件。展开宏指令。,汇编操作过程:设在当前C盘上已经建立了一个扩展名为ASM的源程序文件MYASM,汇编时发出如下命令:C:MASM MYASM(或MASM MYASM.ASM)具体的三个输入提示行显示如下:Object Filename MYASM.OBJ:So
2、urce Listing NUL.LST:(可打入源文件名或省略)Cross Reference NUL.CRF:(可打入源文件名或省略)汇编程序对源文件进行汇编,若无错误信息则显示如下结果:0 Warning Errors 0 Severe Errors,2.目标文件的链接连接软件LINK的功能:找到要连接的所有目标文件;确定所有段的地址值;确定所有浮动地址和外部符号所对应的存储地址;生成.EXE可执行文件。,连接软件为 LINK.EXE,其过程如下:设源文件MYASM.ASM已经由汇编软件汇编后生成MYASM.OBJ,其连接命令为:C:LINK MYASM 或 LINK MYASM.OBJ
3、 则在屏幕上显示连接软件的版本号和三个输入提示行,三个输入提示行显示如下:Run File MYASM.EXE:List File NUL.MAP:Libraries.LIB:3.执行文件的调试,5.2 顺序结构程序设计,例5-1 用8086CPU的指令实现Y=(X1+X2)/2的程序设计(1)明确任务,确定算法。(2)绘流程图(图5-3),图5-3 例5-1流程图,(3)根据流程图编写汇编语言程序 1 DATA SEGMENT 2 X1 DB?3 X2 DB?4 Y DW?5 DATA ENDS 6 CODE SEGMENT 7 ASSUME CS:CODE,DS:DATA,8 MAIN P
4、ROC FAR;设置远程调用子程序 9 START:PUSH DS;将DS:0压入堆栈 10 MOVAX,0,11 PUSH AX 12 MOV AX,DATA;为DS设置段值 13 MOV DS,AX 14 MOV AL,X1;取变量X1送AL 15 MOV BL,X2;取变量X2送BL 16 ADD AL,BL 17 ADC AH,0;X1+X2+进位送AX 18 SAR AX,1 19 MOV Y,AX;结果送Y 20 RET 21 MAINENDP 22 CODEENDS 23 ENDSTART,例5-2 将一位十六进制数转换成与它相应的 ASC码。(1)明确任务,确定算法。(2)绘流
5、程图(图5-4),图5-4 例5-2流程,(3)根据流程图编写汇编语言程序DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H HEX DB 8 ASC DB?DATA ENDSCOSEG SEGMENT ASSUME CS:COSEG,DS:DATABEING:MOV AX,DATA MOV DS,AX,MOV BX,OFFSET TAB MOV AL,HEX XLAT MOV ASC,AL MOV AH,4CH INT 21HCOSEG ENDS END BEING,5
6、.3 分支结构程序设计,5.3.1 二分支结构 例5-3 要求对不足250个的学生成绩进行统计分析,统计出优秀、及格和不及格的人数。(1)明确任务,确定算法。,(2)绘流程图,图5-6 例5-3流程图,(3)根据流程图编写汇编语言程序 DATA SEGMENT BUF DB N DB N DUP(?)NUM DB 3 DUP(?)DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA START:PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF MO
7、V CH,SI;学生个数NCH MOV CL,0;CL存不及格人数,MOV BX,0;BH存优秀人数,BL存及格人数 INC SILP:MOV AH,SI;取学生成绩 CMP AH,90 JB BLOW90;小于90转 INC BH;优秀人数加1 JMP ABOV60 BLOW90:CMP AH,60 JB BLOW60;小于60转ABOV60:INC BL;及格人数加1 JMP NEXTBLOW60:INC CL;不及格人数加1 NEXT:INC SI;数组地址加1 DEC CH;计数减1 JNZ LP MOV SI,OFFSET NUM MOV SI,BH;优秀人数送入内存单元 MOV S
8、I+1,BL;及格人数送入内存单元,MOV SI+2,CL;不及格人数送入内存单元 RETMAIN ENDPCODE ENDS END START5.3.2 多分支结构1.条件逐次测试法例5-4 编程实现使键盘上A、B、C、D六个字母键成为4条输 入命令,使之分别对应不同算法的控制子程序。(1)明确任务,确定算法。(2)绘流程图略,(3)汇编语言程序 MOV AH,l INT 21H;1号功能调用,键盘接收 CMP AL,A;键值为A,转PA子程序 JE PA CMP AL,B;键值为B,转PB子程序 JE PB CMP AL,C;键值为C,转PC子程序 JE PC CMP AL,D;键值为D
9、,转PD子程序 JE PD HLT;键值非A、B、C、D,停止 PA:;A号控制子程序入口 PB:;B号控制子程序入口 PC:;C号控制子程序入口 PD:;D号控制子程序入口,2.列表跳转法例5-5 利用表内地址跳转法来实现例5.4的要求(1)明确任务,确定算法。,(2)绘流程图(图5-8),图5-8 例5-5流程图,(3)根据流程图编写汇编语言程序ADATA SEGMENTBASE DW PA,PB,PC,PDKEY DB?ADATA ENDSASTACK SEGMENT PARA STACK STACK DW 100 DUP(?)TOP LABEL WORDASTACK ENDSACODE
10、 SEGMENT ASSUME CS:ACODE,DS:ADATA,SS:ASTACKSTART:MOV AX,ASTACK MOV SS,AX MOV SP,OFFSET TOP,MOV AX,ADATA MOV DS,AX LOP:MOV AH,1 INT 21H CMP AL,41H JB LOP CMP AL,44H JA LOP SUB AL,41H MOV BX,OFFSET BASE MOV AH,0 ADD AL,AL ADD BX,AX JMP WORD PTRBXACODE ENDS END START,5.4 循环结构程序设计5.4.1 循环程序的组成与结构形式两种循环程
11、序结构:WHILE_DO结构和DO_UNTIL结构,例5-6 试编写一程序统计出某一内存单元中1的个数(1)明确任务,确定算法。(2)绘流程图(图5-11),图5-11 例5-6 流程图,(3)根据流程图编写汇编语言程序DATA SEGMENTXDA DW 3AD8HCONT DB?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV CL,0 MOV AX,XDA,LOP:CMP AX,0 JZ EXIT SHL AX,1 JNC NEXT INC CLNEXT:JMP LOP EXIT:MOV
12、 CONT,CL INT 20HCODE ENDS END START,5.4.2 循环程序的控制方法(1)计数法计数法分为正计数法和倒计数法。例5-7 编制程序将两个n字节的无符号数相加,结果存入SUM 开始的n+1字节存储区中。(1)明确任务,确定算法。(2)绘流程图略,(3)根据流程图编写汇编语言程序DATA SEGMENTDATA1 DB N DUP(?)DATA2 DB N DUP(?)SUM DB N+1 DUP(?)DATA ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV BX,OFFS
13、ET DATA1 MOV SI,OFFSET DATA2 LEA DI,SUM MOV CX,N CLC,LOP:MOV AL,SI ADC AL,BX MOV DI,AL INC BX INC SI INC DI LOOP LOP ADC BYTE PTR DI,0 MOV AH,4CH INT 21H CSEG ENDS END START,(2)条件控制法条件控制法利用已知的条件对循环进行控制的方法。分两种情况:1)如循环最大次数已知,但有可能使用一些特征或条件使循环提前结束。2)循环次数未知,利用条件中的特征结束循环。例5-8 编制程序用单字符输出的DOS功能调用向屏幕输出以“%”结束
14、的字符串。(1)明确任务,确定算法。,(2)绘流程图(图5-12),图5-12 例5-8流程图,(3)根据流程图编写汇编语言程序 DSEG SEGMENT DATA DB HOW ARE YOU?%DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX LEA SI,DATA,AGAIN:MOV DL,SI CMP DL,%JZ ENDOUT MOV AH,2 INT 21H INC SI JMP AGAINENDOUT:INT 20HCSEG ENDS END START,(3)逻辑尺控制法例5-9
15、设有16个内存单元需要修改,修改规律是:第1、3、6、9、12号单元均加5,其余单元均加10,试用循环结构编程实现。(1)明确任务,确定算法。(2)绘流程图(3)根据流程图编写汇编语言程序,图5-13 例5-9流程图,指针BX0,计数初值CX16,AXXDABX,DX逻辑左移一位,CF=1?,Y,N,AXAX+10,XDABXAX,BXBX+1,CXCX1,CX=0?,N,Y,结束,AXAX+5,DATA SEGMENTXDA DB 16 DUP(?)LRULER DW 0A490HDATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DAT
16、ASTART:PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,0 MOV CX,10H,MOV DX,LRULERAGAIN:MOV AX,XDABX SHL DX,1 JC ADD5 ADD AX,10 JMP SHORT RESULTADD5:ADD AX,5RESULT:MOV XDABX,AX INC BX LOOP AGAIN RETMAIN ENDPCODE ENDS END START,5.4.3 多重循环程序设计注意以下几点:1)设置好各重循环的初始状态,确保各重循环的正常运行。2)注意内外循环嵌套。3)防止死循环现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 接口 技术 第五

链接地址:https://www.31ppt.com/p-6572693.html