清华大学出版社微机原理与接口技术第3版课件

上传人:cn****1 文档编号:567592474 上传时间:2024-07-21 格式:PPT 页数:70 大小:683KB
返回 下载 相关 举报
清华大学出版社微机原理与接口技术第3版课件_第1页
第1页 / 共70页
清华大学出版社微机原理与接口技术第3版课件_第2页
第2页 / 共70页
清华大学出版社微机原理与接口技术第3版课件_第3页
第3页 / 共70页
清华大学出版社微机原理与接口技术第3版课件_第4页
第4页 / 共70页
清华大学出版社微机原理与接口技术第3版课件_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《清华大学出版社微机原理与接口技术第3版课件》由会员分享,可在线阅读,更多相关《清华大学出版社微机原理与接口技术第3版课件(70页珍藏版)》请在金锄头文库上搜索。

1、第第4 4章章汇编语言程序设计1清华大学出版社微机原理与接口技术(第3版)主要内容n汇编语言源程序的言源程序的结构构n汇编语言言语句格式句格式n伪指令指令n功能功能调用用n汇编语言程序言程序设计2清华大学出版社微机原理与接口技术(第3版)4.1 汇编语言源程序了解:了解:n汇编语言源程序的言源程序的结构构n汇编语言言语句句类型及格式型及格式3清华大学出版社微机原理与接口技术(第3版)一、汇编语言源程序结构4清华大学出版社微机原理与接口技术(第3版)1. 汇编语言源程序与汇编程序n汇编语言源程序言源程序n汇编程序程序用助用助记符符编写写汇编程序汇编程序汇编语言汇编语言源程序源程序机器语言机器语言

2、目标程序目标程序源程序的源程序的编译程序程序5清华大学出版社微机原理与接口技术(第3版)2. 汇编语言程序设计与执行过程n输入入汇编语言源程序(言源程序(EDIT)n汇编(MASM)n链接(接(LINK)n调试(TD)源文件源文件 . ASM目标文件目标文件 .OBJ可执行文件可执行文件.EXE最终程序最终程序6清华大学出版社微机原理与接口技术(第3版)二、汇编语言语句类型及格式二、汇编语言语句类型及格式7清华大学出版社微机原理与接口技术(第3版)1. 汇编语言语句类型指令性指令性语句句指示性指示性语句句CPU执行的语句,执行的语句,能够生成目标代码能够生成目标代码CPU不执行,而由汇不执行,

3、而由汇编程序执行的语句,编程序执行的语句,不生成目标代码不生成目标代码8清华大学出版社微机原理与接口技术(第3版)2. 汇编语言语句格式 指令性指令性语句:句: 标号:号: 前前缀 助助记符符 操作数操作数,操作数操作数 ;注;注释指令的符号地址指令的符号地址标号后要有冒号标号后要有冒号操作码操作码注释前加分号注释前加分号9清华大学出版社微机原理与接口技术(第3版)指示性语句格式名字名字 伪指令助指令助记符符 操作数操作数 ,操作数,操作数, ;注;注释变量的符号地址变量的符号地址其后不加冒号其后不加冒号指示性语句中至指示性语句中至少有一个操作数少有一个操作数10清华大学出版社微机原理与接口技

4、术(第3版)3. 标号、名字n标号后有冒号,在指令性号后有冒号,在指令性语句前;名字后不加句前;名字后不加冒号,在指示性冒号,在指示性语句前。句前。n英文字母、数字及英文字母、数字及专用字符用字符组成成, ,最大最大长度不度不能超能超过3131个个, ,且不能由数字打且不能由数字打头, ,不能用保留字不能用保留字( (如寄存器名如寄存器名, ,指令助指令助记符符, ,伪指令指令) )。 11清华大学出版社微机原理与接口技术(第3版)4. 操作数寄存器寄存器存存储器器单元元常量常量变量或量或标号号表达式表达式12清华大学出版社微机原理与接口技术(第3版)常 量n数字常量数字常量n字符串常量字符串

5、常量n例:例:A nMOV AL,An例:例:ABCD汇编时被译成对应的汇编时被译成对应的ASCII码码41414141H H H H,42424242H H H H,43H43H43H43H,44H44H44H44H用单引号引起的字符或字符串用单引号引起的字符或字符串13清华大学出版社微机原理与接口技术(第3版)变 量n代表内存中的数据区,程序中代表内存中的数据区,程序中视为存存储器器操作数操作数n变量的属性:量的属性: 变量所在段的段地址量所在段的段地址 变量量单元地址与段首地址之元地址与段首地址之 间的位移量。的位移量。 字字节型、字型和双字型型、字型和双字型段段 值值偏移量偏移量类类

6、型型14清华大学出版社微机原理与接口技术(第3版)表达式算算术运算运算逻辑运算运算*关系运算关系运算取取值运算和属性运算运算和属性运算其它运算其它运算15清华大学出版社微机原理与接口技术(第3版)算术运算和逻辑运算符n算算术运算符运算符n+,-,*,/,MODn逻辑运算符运算符nAND,OR,NOT,XORn例:例:nMOV AL,8 AND 4nMOV AL,8+4-116清华大学出版社微机原理与接口技术(第3版)取值运算符取得其后变量或标号的偏移地址取得其后变量或标号的偏移地址取得其后变量或标号的段地址取得其后变量或标号的段地址TYPE 取取变量的类型变量的类型变量的类型变量的类型LENG

7、TH 取所定义存储区的长度取所定义存储区的长度SIZE 取所定义存储区的字节数取所定义存储区的字节数n用于分析存用于分析存储器操作数的属性器操作数的属性n获取取变量的属性量的属性值OFFSETSEG17清华大学出版社微机原理与接口技术(第3版)取值运算符例 MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET DATA LEA BX,DATA等价于等价于18清华大学出版社微机原理与接口技术(第3版)取值运算符例n若若BUFFER存存储区用如下区用如下伪指令定指令定义: BUFFER DW 200 DUP(0)BUFFER DW 200 DUP(0) 则: TYPETY

8、PE BUFFER BUFFER 等于等于2 2 LENGTH BUFFERLENGTH BUFFER等于等于200200 SIZE BUFFERSIZE BUFFER等于等于40040019清华大学出版社微机原理与接口技术(第3版)属性运算符n 用于指定其后存储器操作数的类型用于指定其后存储器操作数的类型n 运算符:运算符:PTRn 例:例: MOV BYTR PTRBX,12H20清华大学出版社微机原理与接口技术(第3版)其它运算符n方括号:方括号: n段重段重设符符 段寄存器名:段寄存器名: 方括号中内容为操作数的偏移地址方括号中内容为操作数的偏移地址用于修改默认的段基地址用于修改默认的

9、段基地址21清华大学出版社微机原理与接口技术(第3版)4.2 伪指令掌握:掌握:n伪指令的格式及指令的格式及实现的操作的操作n伪指令的指令的应用用22清华大学出版社微机原理与接口技术(第3版)伪指令n由由汇编程序程序执行的行的“指令系指令系统”n作用:作用:n定定义变量;量;n分配存分配存储区区n定定义逻辑段;段;n指示程序开始和指示程序开始和结束;束;n定定义过程等。程等。23清华大学出版社微机原理与接口技术(第3版)常用伪指令数据定数据定义伪指令指令符号定符号定义伪指令指令段定段定义伪指令指令结束束伪指令指令过程定程定义伪指令指令宏命令宏命令伪指令指令24清华大学出版社微机原理与接口技术(

10、第3版)一、数据定义伪指令n用于定用于定义数据区中数据区中变量的量的类型及大小型及大小n格式:格式: 变量名量名 伪指令助指令助记符符 操作数,操作数, ;注注释符号地址符号地址定义变量类型定义变量类型定义变量值定义变量值及区域大小及区域大小25清华大学出版社微机原理与接口技术(第3版)1. 数据定义伪指令助记符nDB 定定义的的变量量为字字节型型nDW 定定义的的变量量为字字类型(双字型(双字节)nDD 定定义的的变量量为双字型(双字型(4字字节)nDQ 定定义的的变量量为4字型(字型(8字字节)nDT 定定义的的变量量为10字字节型型26清华大学出版社微机原理与接口技术(第3版)数据定义伪

11、指令例nDATA1 DB 11H,22H,33H,44HnDATA2 DW 11H,22H,3344HnDATA3 DD 11H*2,22H,33445566H以上变量在内存以上变量在内存中的存放形式中的存放形式27清华大学出版社微机原理与接口技术(第3版)数据定义伪指令例_变量在内存中的分布变量在内存中的分布DATA111223344DATA2224411000033DATA32200220000XX6655443328清华大学出版社微机原理与接口技术(第3版)数据定义伪指令的几点说明n伪指令的性指令的性质决定所定决定所定义变量的量的类型;型;n定定义字符串必字符串必须用用DB伪指令指令n例

12、:例: DATA1 DB ABCD,66HAB CD41H42H43H44H66H29清华大学出版社微机原理与接口技术(第3版)2. 重复操作符n作用:作用:n为一个数据区的各一个数据区的各单元元设置相同的初置相同的初值n目的:目的:n常用于声明一个数据区常用于声明一个数据区n格式:格式: 变量名量名 伪指令助指令助记符符 n DUP(初初值,)n例:例: BW 20 DUP(0)M1 DB 10 DUP(0)30清华大学出版社微机原理与接口技术(第3版)3. “?”的作用n表示随机表示随机值,用于,用于预留存留存储空空间nMEM1 DB 34H,A,?,? DW 20 DUP(?)(?)预留

13、预留40个字节单元,每单元为随机值个字节单元,每单元为随机值随机数随机数占占1个字节单元个字节单元31清华大学出版社微机原理与接口技术(第3版)数据定义伪指令例nM1 DB How are you?nM2 DW 3 DUP(11H),3344Hn DB 4 DUP(?)(?)nM3 DB 3 DUP(22H,11H,?),?)变量在内存中的分区变量在内存中的分区32清华大学出版社微机原理与接口技术(第3版)数据定义伪指令例M1How aM211H11H00H44H33H r e you?11H00H00H随机数随机数M311H22H11H22H11H22HXXXXXXXXXXXXXX33清华大

14、学出版社微机原理与接口技术(第3版)二、符号定义伪指令n格式:格式: 符号名符号名 EQUEQU 表达式表达式n操作:操作: 用符号名取代后用符号名取代后边的表达式,不可重新定的表达式,不可重新定义n例:例: CONSTANTCONSTANTEQUEQU100100 VAR EQU 30H+99HVAR EQU 30H+99HEQU说明的表达式不占用内存空间说明的表达式不占用内存空间34清华大学出版社微机原理与接口技术(第3版)三、段定义伪指令n说明明逻辑段的起始和段的起始和结束;束;n说明不同程序模明不同程序模块中同中同类逻辑段之段之间的的联系形系形 态35清华大学出版社微机原理与接口技术(

15、第3版)段定义伪指令格式段名段名 SEGMENT SEGMENT 定位定位类类型型 组组合合类类型型 类别类别 段名段名 ENDSENDS说明逻辑说明逻辑段的起点段的起点说明不同模块中同名说明不同模块中同名段的组和连接方式段的组和连接方式36清华大学出版社微机原理与接口技术(第3版)定位类型nPARA: 段的起点从段的起点从节边界开始界开始 (16个字个字节为1节)nBYTE: 段的起点从存段的起点从存储器任何地址开始器任何地址开始nWORD:段的起点从偶地址开始段的起点从偶地址开始nPAGE: 段的起点从段的起点从页边界开始界开始 (256个字个字节为1页)37清华大学出版社微机原理与接口技

16、术(第3版)组合类型n与其它模与其它模块中的同名段在中的同名段在满足定位足定位类型的前提型的前提 下具有的下具有的组合方式:合方式:nNONE: 不不组合合nPUBLIC: 依次依次连接(接(顺序由序由LINK程序确定)程序确定)nCOMMON: 覆盖覆盖连接接nSTACK: 堆堆栈段的依次段的依次连接接nAT 表达式:段定表达式:段定义在表达式在表达式值为段基的段基的节边界界nMEMORY: 相相应段在同名段的最高地址段在同名段的最高地址处。38清华大学出版社微机原理与接口技术(第3版)类别n不同模不同模块连接接时将相同将相同类别的段放在的段放在连续的内存区域中的内存区域中39清华大学出版社

17、微机原理与接口技术(第3版)段定义伪指令例DATA SEGMENT MEM1 DB 11H,22H MEM2 DB Hello! MEM3 DW 2 DUP(?)(?)DATA ENDS变变量量在在逻逻辑辑段段中中的的位位置置就就代代表表了了它它的的偏偏移移地址地址表表示示变变量量所所在在逻逻辑辑段段的的段段地地址址表表示示变变量量的的类类型型40清华大学出版社微机原理与接口技术(第3版)四、设定段寄存器伪指令n说明所定明所定义逻辑段的性段的性质n格式:格式: ASSUME 段寄存器名段寄存器名:段名段名,段寄存器名,段寄存器名:段名,段名,41清华大学出版社微机原理与接口技术(第3版)五、结

18、束伪指令n表示源程序表示源程序结束束n格式:格式: END 标号号42清华大学出版社微机原理与接口技术(第3版)汇编语言源程序结构数据段名数据段名 SEGMENT 数据段名数据段名 ENDS附加段名附加段名 SEGMENT 附加段名附加段名 ENDS堆堆栈段名段名 SEGMENT 堆堆栈段名段名 ENDS代代码段名段名 SEGMENT 代代码段名段名 ENDS END 43清华大学出版社微机原理与接口技术(第3版)一个完整源程序结构例DSEG SEGMENT DATA1 DB 1,2, 3 DUP(?)(?) DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20

19、DUP(?)(?)ESEG ENDSSSEG SEGMENT STACK STACK DB 200 DUP(?)(?)SSEG ENDS44清华大学出版社微机原理与接口技术(第3版)一个完整源程序结构例 CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG, ES:ESEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,SSEG MOV SS,AX CSEG ENDS END START源程序源程序 代码代码段寄存器初始化段寄存器初始化将段地址送将段地址送相相应的段的段寄存器寄存器45清华大学

20、出版社微机原理与接口技术(第3版)六、过程定义伪指令n用于定用于定义一个一个过程体程体n格式:格式: 过程名程名 PROC NEAR / FAR RET 过程名程名 ENDPP157例例过程入口的过程入口的符号地址符号地址46清华大学出版社微机原理与接口技术(第3版)过程定义及调用例n定定义延延时子程序子程序 nDELAY PROCn PUSH BXn PUSH CXn MOV BL,2nNEXT: MOV CX,4167nW10M: LOOP W10Mn DEC BLn JNZ NEXTn POP CXn POP BXn RETnDELAY ENDPn调用延用延时子程序:子程序: nCALL

21、 DELAY 47清华大学出版社微机原理与接口技术(第3版)七、宏命令伪指令n 源程序中由源程序中由汇编程序程序识别的具有独的具有独 立功能的一段程序代立功能的一段程序代码n格式:格式: 宏命令名宏命令名 MACRO ENDM宏体宏体宏宏48清华大学出版社微机原理与接口技术(第3版)八、其它伪指令 段内程序代段内程序代码或或变量的起始偏移地址量的起始偏移地址n格式:格式: ORG 表达式表达式n例:例: ORG 2000H计算值为计算值为非负常数非负常数ORG49清华大学出版社微机原理与接口技术(第3版)其它伪指令nNAME-为目目标程序程序设定一个名字定一个名字n格式:格式: NAME 模模

22、块名名nTITLE-为程序清程序清单指定打印指定打印标题n格式:格式: TITLE 标题名名50清华大学出版社微机原理与接口技术(第3版)4.3 功能调用DOS 功能功能调用用 BIOS功能功能调用用51清华大学出版社微机原理与接口技术(第3版)DOS 功能调用n包含多个子功能的功能包;包含多个子功能的功能包;n用用软中断指令中断指令调用,中断用,中断类型型码固定固定为21H;n各子功能采用功能号来区分。各子功能采用功能号来区分。52清华大学出版社微机原理与接口技术(第3版)DOS 功能调用设备设备管理管理目目目目录录录录管理管理管理管理文件管理文件管理文件管理文件管理其它其它其它其它53清华

23、大学出版社微机原理与接口技术(第3版)DOS 功能调用n调用格式:用格式: MOV AH,功能号功能号 INT 21H54清华大学出版社微机原理与接口技术(第3版)一、单字符输入n调用方法:用方法: MOV AH,01 INT 21Hn输入的字符在入的字符在AL中中55清华大学出版社微机原理与接口技术(第3版)单字符输入例GET_KEY:GET_KEY: MOVMOVAH,1AH,1 INTINT21H21H CMPCMPAL,AL,Y Y JZ JZ YESYES CMP CMPAL,AL,N N JZ JZ NONO JMP JMPGET_KEYGET_KEY YES: YES: NO:

24、NO: 交互式应交互式应 答程序答程序56清华大学出版社微机原理与接口技术(第3版)二、字符串输入n注意注意问题:n调用格式用格式n字符字符输入入缓冲区的定冲区的定义57清华大学出版社微机原理与接口技术(第3版)1. 调用格式 功能号功能号OAH 字符串在内存中的存放地址字符串在内存中的存放地址nINT 21Hn AHn DS:DX58清华大学出版社微机原理与接口技术(第3版)2. 定义字符缓冲区n用用户自定自定义缓冲区格式:冲区格式:0DHN1N2整个缓冲区整个缓冲区最大可键入字符数最大可键入字符数实际键入字符数实际键入字符数存放键入的字符存放键入的字符存放字符个数:存放字符个数:25559

25、清华大学出版社微机原理与接口技术(第3版)输入字符串程序段n DAT1 DB 20,?,?,20 DUP(?)(?) n LEA DX,DAT1 MOV AH,0AH INT 21H在数据段在数据段中定义中定义60清华大学出版社微机原理与接口技术(第3版)输入缓冲区14H ?20个字节个字节定义后的输入缓定义后的输入缓冲区初始状态:冲区初始状态:61清华大学出版社微机原理与接口技术(第3版)三、单字符显示输出 功能号功能号O2H 待待输出字符出字符nINT 21Hn AHn DL62清华大学出版社微机原理与接口技术(第3版)单字符显示输出例nMOVAH,02nMOVDL,41HnINT21H执

26、行结果:执行结果:屏幕显示屏幕显示A63清华大学出版社微机原理与接口技术(第3版)四、字符串输出显示 功能号功能号O9H 待待输出字符串的偏移地址出字符串的偏移地址nINT 21Hn AHn DS:DX64清华大学出版社微机原理与接口技术(第3版)字符串输出显示n被被显示的字符串必示的字符串必须以以$ $结束束, ,且所且所显示示的的 内容不内容不应出出现非可非可见的的ASCIIASCII码65清华大学出版社微机原理与接口技术(第3版)字符串输出显示例DATA SEGMENTMESS1 DB Input String:, 0DH,0AH,$DATA ENDSCODE SEGMENT MOV A

27、H,09MOV DX,OFFSET MESS1INT21H 66清华大学出版社微机原理与接口技术(第3版)4.4 汇编语言程序设计设计步步骤:n根据根据实际问题抽象出数学模型抽象出数学模型n确定算法确定算法n画程序流程画程序流程图 n分配内存工作分配内存工作单元和寄存器元和寄存器n程序程序编码n调试67清华大学出版社微机原理与接口技术(第3版)程序流程图符号起始:起始:功能:功能:判断:判断:子过程:子过程:68清华大学出版社微机原理与接口技术(第3版)汇编语言程序结构n顺序序结构构n循循环结构构n先判定型先判定型n后判定型后判定型n分枝分枝结构构n单分枝分枝n多分枝多分枝n子程序子程序结构构69清华大学出版社微机原理与接口技术(第3版)本章注意点n完整的完整的汇编语言源程序言源程序结构构n定定义逻辑段,段,说明段的含明段的含义,初始化段寄存器,初始化段寄存器n伪指令指令n数据定数据定义方式方式n字符及字符串的字符及字符串的输入和入和显示示输出出n字符字符输入入缓冲区的定冲区的定义,输出字符串的定出字符串的定义n源程序的源程序的编写写n几种几种结构(构(顺序、循序、循环、分枝等)、分枝等)70清华大学出版社微机原理与接口技术(第3版)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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