微型计算机原理与接口技术第五章

上传人:ji****n 文档编号:54862131 上传时间:2018-09-20 格式:PPT 页数:80 大小:395KB
返回 下载 相关 举报
微型计算机原理与接口技术第五章_第1页
第1页 / 共80页
微型计算机原理与接口技术第五章_第2页
第2页 / 共80页
微型计算机原理与接口技术第五章_第3页
第3页 / 共80页
微型计算机原理与接口技术第五章_第4页
第4页 / 共80页
微型计算机原理与接口技术第五章_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《微型计算机原理与接口技术第五章》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术第五章(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 MYA

2、SM.OBJ:Source Listing NUL.LST:(可打入源文件名或省略)Cross Reference NUL.CRF:(可打入源文件名或省略) 汇编程序对源文件进行汇编,若无错误信息则显示如下结果:0 Warning Errors0 Severe Errors,2.目标文件的链接 连接软件LINK的功能:找到要连接的所有目标文件;确定所有段的地址值;确定所有浮动地址和外部符号所对应的存储地址;生成.EXE可执行文件。,连接软件为 LINK.EXE,其过程如下: 设源文件MYASM.ASM已经由汇编软件汇编后生成MYASM.OBJ,其连接命令为: C:LINK MYASM 或 LI

3、NK MYASM.OBJ则在屏幕上显示连接软件的版本号和三个输入提示行,三个输入提示行显示如下: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 SEGMENT2 X1 DB ?3 X2 DB ?4 Y DW ?5 DATA ENDS6 CODE SEGMENT7 ASSUME CS:CODE, DS

4、:DATA,8 MAIN PROC FAR ;设置远程调用子程序9 START: PUSH DS ;将DS:0压入堆栈10 MOV AX, 0,11 PUSH AX 12 MOV AX, DATA ;为DS设置段值13 MOV DS, AX14 MOV AL, X1 ;取变量X1送AL15 MOV BL, X2 ;取变量X2送BL16 ADD AL, BL17 ADC AH, 0 ;X1+X2+进位送AX18 SAR AX, 119 MOV Y, AX ;结果送Y20 RET21 MAIN ENDP22 CODE ENDS23 END START,例5-2 将一位十六进制数转换成与它相应的AS

5、C码。 (1)明确任务,确定算法。 (2)绘流程图(图5-4),图5-4 例5-2流程,(3)根据流程图编写汇编语言程序 DATA SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37HDB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB 8ASC DB ? DATA ENDS COSEG SEGMENTASSUME CS:COSEG,DS:DATA BEING: MOV AX,DATAMOV DS,AX,MOV BX, OFFSET TABMOV AL,HEXXLATMOV ASC,ALMOV AH,4CHINT 21H

6、COSEG ENDSEND BEING,5.3 分支结构程序设计,5.3.1 二分支结构例5-3 要求对不足250个的学生成绩进行统计分析,统计出优秀、及格和不及格的人数。 (1)明确任务,确定算法。,(2)绘流程图,图5-6 例5-3流程图,(3)根据流程图编写汇编语言程序DATA SEGMENTBUF DB NDB N DUP(?)NUM DB 3 DUP(?)DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSSUB AX,AXPUSH AXMOV AX,DATA MOV DS,AXMOV SI,OF

7、FSET BUFMOV CH,SI ;学生个数NCHMOV CL,0 ;CL存不及格人数,MOV BX,0 ;BH存优秀人数,BL存及格人数INC SI LP: MOV AH, SI ;取学生成绩CMP AH,90JB BLOW90 ;小于90转INC BH ;优秀人数加1JMP ABOV60 BLOW90: CMP AH,60JB BLOW60 ;小于60转 ABOV60: INC BL ;及格人数加1JMP NEXT BLOW60: INC CL ;不及格人数加1NEXT: INC SI ;数组地址加1DEC CH ;计数减1JNZ LPMOV SI,OFFSET NUMMOV SI,BH

8、 ;优秀人数送入内存单元MOV SI+1,BL ;及格人数送入内存单元,MOV SI+2,CL ;不及格人数送入内存单元RET MAIN ENDP CODE ENDSEND START5.3.2 多分支结构 1.条件逐次测试法 例5-4 编程实现使键盘上A、B、C、D六个字母键成为4条输 入命令,使之分别对应不同算法的控制子程序。 (1)明确任务,确定算法。 (2)绘流程图略,(3)汇编语言程序MOV AH,lINT 21H ;1号功能调用,键盘接收CMP AL,A ;键值为A,转PA子程序JE PACMP AL,B ;键值为B,转PB子程序JE PBCMP AL,C ;键值为C,转PC子程序

9、JE PCCMP AL,D ;键值为D,转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 SEGMENT BASE DW PA,PB,PC,PD KEY DB ? ADATA ENDS ASTACK SEGMENT PARA STACK STACKDW 100 DUP(?) TOP

10、 LABEL WORD ASTACK ENDS ACODE SEGMENTASSUME CS:ACODE,DS:ADATA,SS:ASTACK START:MOV AX,ASTACKMOV SS,AXMOV SP, OFFSET TOP,MOV AX, ADATAMOV DS, AXLOP: MOV AH,1INT 21HCMP AL,41HJB LOP CMP AL,44HJA LOPSUB AL,41HMOV BX,OFFSET BASEMOV AH,0ADD AL,ALADD BX,AXJMP WORD PTRBX ACODE ENDSEND START,5.4 循环结构程序设计 5.4

11、.1 循环程序的组成与结构形式 两种循环程序结构:WHILE_DO结构和DO_UNTIL结构,例5-6 试编写一程序统计出某一内存单元中1的个数 (1)明确任务,确定算法。 (2)绘流程图(图5-11),图5-11 例5-6 流程图,(3)根据流程图编写汇编语言程序 DATA SEGMENT XDA DW 3AD8H CONT DB ? DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV CL,0MOV AX,XDA,LOP: CMP AX,0JZ EXITSHL AX,1JNC NEXTINC CL NEXT:JMP LOP EXIT: MOV CONT,CLINT 20H CODE ENDSEND START,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号