计算机硬件第三章ppt
(113页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
19.90 积分
第 3 章 汇编语言程序设计 本章重点:§ 典型的汇编语言源程序的结构§ 程序设计的步骤§ 程序结构设计的方法§ 程序的四种基本结构及相关的设计方法§ 程序结构转换的方法§ 多种数码之间的转换原理及程序设计方法§ 冒泡排序、选择排序、对半检索程序的设计方法§ 数据表和链表的删除、插入方法 教学建议:n 在讲述伪指令的基础上讲述汇编语言源程序的结构。n 对程序设计步骤、方法和结构转换结合例子讲述。n 数码转换部分内容可以自学为主。§ 冒泡排序、选择排序、对半检索程序在讲述一 般原理基础上让学生通过实验掌握。n 本章用10学时,另加6学时用于实验。 3.1 汇编语言 3.1.1 汇编语言概述 汇编程序汇编语言源程序 汇编 目标程序汇编语言应用范围n 1)系统程序或大型软件的核心部分n 2)实时性要求比较高的系统n 3)和硬件关系密切的设备驱动程序或接 口软件3.1.2 语句的类型和格式 指示性语句的格式 3.1.3 运算符 ? 算术运算符 ? 逻辑与移位运算符 ? 关系运算符 ? 分析运算符n 编译时执行1. 算术运算符n +(正或加)n -(负或减)n ﹡(乘)n /(整除)n MOD(取模) n 算术运算可用于数据和地址,如n MOV AL, Val/5n MOV CX,DATAEND - DATAn MOV DATA+12. 逻辑与移位运算符1) 逻辑运算符n AND(与)n OR(或)n NOT(非)n XOR(异或) 例:IN AL, PORT AND 0FEH 2)移位运算符n SHL、SHR(逻辑左、右移)n 例:MOV CX, 1024 SHR 53. 关系运算符n CQ、NE、LT、GT、LE、GEn 注意:2个操作数均为数值,或其中一个为地 址;结果为FFFFH或0.例:MOV AX, DATA GE 80 MOV AX, ((DATA GE 80) AND 100) OR ((DATA LT 80) AND 60 )4. 分析运算符n SEGn OFFSETn TYPEn LENGTHn SIZE1) 段码运算符n SEG 例:MOV AX, SEG DATA ; 获取DATA所在的段码 MOV DS, AX2) 偏移量运算符n OFFSET例:MOV SI, OFFSET DATA ;提取Data的地址偏移量3) 类型运算符n TYPE 结果:1、2、4、6、8和10例:ADD SI, TYPE DATA4)长度运算符和重复运算符n DUPn LENGTH (返回重复的长度)例1: DATA DW 10 DUP (0)例2: MOV CX, LENGTH DATA 例3:BUFFER DW 8 DUP ( 4 DUP (0), 1, 2 ) MOV CX, LENGTH BUFFER5)容量运算符n SIZE ( = LENGTH * TYPE )例:MOV CX, SIZE DATA5. 综合运算符n PTRn THISn SHORT1)指针运算符PTR(1) 指定存储器操作数的类型例:INC BYTE PTR [SI] INC WORD PTR [SI](2) 更改已定义的数据类型例:DATA DW 1234H, 5678H MOV AL, BYTE PTR DATA (3) 指定转移地址的类型例1:JMP DWORD PTR FIRST例2:JMP FAR PTR PRINT2) THIS运算符例1: BYTETYPE EQU THIS BYTE WORDTYPE DW 1234H例2: FIRST EQU THIS FAR MOV AX, [SI]3) SHORT运算符JMP SHORT 标号n SHORT范围:-127 - 128n SHORT不需要用PTR指定,但NEAR和FAR 必须需要PTR6. 分离运算符n 1) HIGH (提取高位字节)n 2) LOW (提取低位字节)n 3) HIGHWORDn 4) LOWWORD 例:MOV AL, LOW DATA7. 运算符的优先级运算符优先级由高到低的顺序如下:1)圆括号,尖括号,方括号,圆点,LENGTH,SIZE;2) PTR,OFFSET,SEG,TYPE,THIS和冒号;3) 乘除法和移位:*,/,MOD,SHL和SHR;4) HIGH,LOW,HIGHWORD和LOWWORD;5) 加减法:+,-;6) 关系运算:EQ,NE,LT,LE,GT和GE;7) 逻辑运算:NOT;8) 逻辑运算:AND;9) 逻辑运算:OR,XOR;10)SHORT。 3.2 伪指令 分为8种:n 方式选择伪指令n 程序命名和结束伪指令n 段定义伪指令n 过程定义伪指令n 定义存储单元伪指令n 标号伪指令n 赋值伪指令n 设置地址伪指令。3.2.1 方式选择伪指令 以句点(.)开头,格式和功能如下:n .8086 选择8086、8088指令系统;n .286 选择实地址方式下的80286指令系统;n .286P 选择保护方式下的80286指令系统;n .386 选择实地址方式下的80386指令系统;n .386P 选择保护方式下的80386指令系统;n …3.2.2 程序命名和结束伪指令 1. 程序命名伪指令n 1) NAME伪指令 NAME 模块名n 2) TITLE伪指令 TITLE 标题2. 程序结束伪指令具体格式如下: END [标号]3.2.3 段定义和段约定伪指令 n 1. 段定义伪指令SEGMENT 段名 SEGMENT [定位] [组合] [使用] [类名] 段体 段名 ENDS(1) 定位类型共有如下5种选项:① BYTE:该段从下一个可用字节开始;② WORD:该段从下一个可用字开始;③ DWORD:该段从下一个可用双字开始;④ PARA:该段从下一个可用分段开始;⑤ PAGE:该段从下一个可用页开始。(2)组合类型共有6种选项:① PUBLIC② MEMORY③ COMMON④ PRIVATE⑤ STACK⑥ AT(3)使用类型(用于32位机)① USE16:内存单元的有效地址为16位, 段长不超过64K字节,逻辑地址为16位段 地址码和16位偏移量;② USE32:内存单元的有效地址为32位, 段长可达4G字节,逻辑地址为16位段选 择码 (4) 类名n 类名:用于表明段的类型,如代码或数 据等n 类名是编程者自定的,必须放在单引号 中。 ① MODULE1: 34H 2字节 DSEG SEGMENT PARA PUBLIC ‘DATA’ 12H DW 1234H 14字节 ~ ~DSEG ENDS 78H CSEG SEGMENT PARA PUBLIC ‘CODE’ 56H A段 4字节 START: MOV AX, 01 BCH …. 9AH CSEG ENDS 12字节 ~ ~ END START② MODULE2: MOV AX, 01 …… ~ ~ DSEG SEGMENT PARA PUBLIC ‘DATA1’ B段 DW 2004H 38字节 DSEG ENDS 10字节 ~ ~ CSEG1 SEGMENT PARA PUBLIC ‘CODE’ MOV BX, 02 MOV BX, 02 …… …. ~ ~ 段 字节 C CSEG1 ENDS 20 END 12字节 ~ ~③ MODULE3: 04H 关 键 词: 计算机硬件第三章ppt ppt、pptx格式 免费阅读 下载 天天文库
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。