微机原理与接口课件6

上传人:宝路 文档编号:3002362 上传时间:2017-07-29 格式:PPT 页数:48 大小:4.12MB
返回 下载 相关 举报
微机原理与接口课件6_第1页
第1页 / 共48页
微机原理与接口课件6_第2页
第2页 / 共48页
微机原理与接口课件6_第3页
第3页 / 共48页
微机原理与接口课件6_第4页
第4页 / 共48页
微机原理与接口课件6_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《微机原理与接口课件6》由会员分享,可在线阅读,更多相关《微机原理与接口课件6(48页珍藏版)》请在金锄头文库上搜索。

1、1,第3章 汇编语言程序设计(二),格式# 伪指令# DOS/BIOS调用 (简单了解) 重点:数据结构表示 变量、指针 程序结构 程序流控制(条件、分支、循环) 程序设计方法,Assembly Language Programming(2),2,编辑、汇编与链接程序,编辑器(Editor) 程序设计 汇编器(Assembler) 汇编语言(与机器有关) MASM/ASM/TASM 链接器(Linker) 待装配的BIN指令代码 可执行BIN指令代码,(.OBJ, .LIB, etc ),( XXXX.EXE ,(.DLL), ),3,0000:03FF,环境与代码运行,FFFF:0,堆栈段,

2、数据段,代码段,CS:IP,DS,SS:SP,系统起始运行程序,中断向量区(系统专用),栈底,最多4个活动段,分段结构,ES,4,STACK1 SEGMENT PARA STACK STACK DB 512 dup(?) ;定义堆栈段STACK1 512字节STACK1 ENDS DATA SEGMENT ;定义数据段DATA MESSAGE DB This A Sample Program, LFCR$ DB 0DH,0AH,$ AnyDATA DW 100,. DATA ENDS ;数据段DATA结束 CODE SEGMENT ;定义代码段CODE ASSUME CS:CODE,DS:DA

3、TA; 说明汇编程序活动段范围,汇编语言源程序格式(例),段名,段说明保留字,标号,.286,5,汇编语言例程 (续1 ),MAIN PROC FAR ;MS-DOS 模板语句START:PUSH DS XOR AX,AX PUSH AX ;保存返回指针 DS:0START1:MOV AX,DATA MOV DS,AX LEA BX,MESSAGELOOP1:CMP BYTE PTR BX,$ ; 24H JZ NEXT ;是结束符 CALL PRINT_A CHAR ;输出该字符 INC BX JMP SHORT LOOP1 ; 继续,6,汇编语言例程 (续2 ),NEXT: RET ;返回

4、OSMAIN ENDPPRINT_A_CHAR PROC MOV AH,5 MOV DL,BX ;子程序,NEAR INT 21H RETPRINT_A_CHAR ENDP .CODE ENDS END START;汇编结束,运行从START开始,7,伪操作命令例1,BV1 DB 30, 20H, 111110BBV2 DB 3 DUP(xx/?) ;DB ?,?BV3 DB This is a exampleBV4 DB .WV1 DW BV1,BV2,BV3 ;近指针变量WV2 DD BV4,. ;远指针变量DWV1 DD WV1,WV2,. ;指针的指针变量DP1 DD PRC1,PRC

5、2 ;PRC1,PRC2为过程名BV2L EQU BV4-BV3 MOV BX,MV1+4 MOV AL, BX ; AL=? JMP FAR PTR DP1+4; ;执行?,8,MYDATA SEGMENT AT 8A00HBV1 DB 30,20H,111110BBV2 DB 3 DUP(20H); DB ?,?BV3 DB This is a example$ BV4 DB It is a Problem$ WV1 DW BV1,BV2,BV3 WV2 DW BV4DWV1 DD WV1,WV2DW2 DD .MYDATA ENDSBV2的地址=?DW2的地址=?,8A00:0003H,

6、8A00:003AH,;- 0000;- 0003H;- 0006H;- 0008H;- 001AH;- 002AH;- 0030H;- 0032H;- 003AH,伪操作命令例1分析,9,CODE SEGMENT PRC1 PROC FAR ;8B00:0000:PRC1 ENDPPRC2 PROC FAR ;8B00:2C20:PRC2 ENDPDP1 DD PRC1,PRC2 ;8B00:3000 ;DP1 内容=?ASSUME CS:CODE, DS:DATAJMP FAR PTR DP1+4; 目标地址=?=,伪操作命令例2分析,00,00,00,8B,20,2C,00,8B,8B0

7、0:2C20,JMP FAR PTR CS:3004H,10,汇编语言程序设计方法回顾,步骤:分析、建模-算法 -单任务同其它语言:,存储空间单元-编程-调试(DEBUG版)反复-运行/发行(Release)版 设计方法:自顶向下,逐步细化,层层分解具体小任务; 模块化程序设计:相对独立、功能单一、I/O关系明确:合作、排障;Global/Local 变量(CS:xxx/Auto/Static),11,汇编语言程序设计结构(P166),质量评估 内存容量(效率)、速度、源代码(复杂性)、可维护性、可靠性基本结构 (单任务):顺序、分支、循环,乱序?,MOV AX,100MOV BX,200MO

8、V CX,8000ADD BX, CXCMP BX,1000JZ NEXT,12,顺序程序举例,计算f(x)=5x3+4x2-3x+12=(5x+4)*x-3)*x+12 计算f(6)FXCALC PROC; ENTRY X=x,EXIT=f(x);Used:AX, DX MOV AX,5 MUL X ADD AX,4; MUL X;() SUB AX,3 ;() MUL X ADD AX,12 MOV RESULT,AX RETFXCALC ENDP ;?传递方式:XDW 6; MOV X,6 存储变量传递参数,调用:MOV X,6 ; CALL FXCALC,13,顺序结构 两个32位无符

9、号数乘法,14,data segment num1 dw 8000h, 8000h num2 dw 8008h,8000h mutdw 4 dup (0) data ends stack segment stack stack db 100 dup (s) stack ends code segment para code assume cs:code, ds:data, ss:stack,15,staprocfarpushdsxorax,axpushaxmov ax,dataMov ds,axLea bx,num1 /mov bx,offset num1Mov ax,bxMov si,bx+

10、4Mov di,bx+6Mul siMov bx+8,axMov bx+10,dxMov ax,bx+2Mul siAdd bx+10,ax,16,Adc bx+12,dxMov ax,bx mul diAdd bx+10,axAdc bx+12,dxAdc word ptr bx+14,0Mov,bx+2Mul diAdd bx+12,axAdc bx+14,dxRetSta endpCode endsEnd sta,17,汇编语言程序设计分支结构,基本结构 (单任务):顺序、分支、循环,CMP AL,100 JZ NEXT MOV CX,2000NEXT: MOV CX,3000,CMP

11、AL,100 JZ NEXT1 JMP N100NEXT1: MOV CX,3000NEXT:,18,例 符号函数 y=1 当x0 y=0 当x=0 y=-1 当x0,19,跳转结构根据X0 给Y赋值-1,0,1 MOV AL, XX MOV AH, 1 CMP AL, 0 JG EXIT;X0, AH=1 JZ ZERO MOV AH, -1;0 JMP EXITZERO: MOV AH, AL; 0EXIT: MOV YY,AH,20,汇编语言程序设计分支结构,基本结构 (单任务):顺序、分支、循环,条件:数据比较结果散转:程序入口表,程序流变化,21,分支表(跳转结构)-散转,表内:入口地址:SUB0-L/H,SUB1-L/H,.表内无条件转移指令 JMP SUB0,JMP SUB1,.按INDEX序号跳转到相应子程序DSEG SEGEMNTTABLE DW SUB0,SUB1,SUB2,SUB3,SUB4INDEXDW ?RESULT DW ?X DW 2102. MOV AX, DSEG ;SEG TABLE MOV DS,AX ,

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

当前位置:首页 > 行业资料 > 其它行业文档

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