




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 但是,到目前为止,汇编语言到底怎么编程实现,到底是如何控制外部接口的,我们还不清楚呢。 从本堂课开始,我们将陆续开始,深入学习8086系统。 我们学习了8086CPU、存储器和I/O结构、8086系统指令寻址方式和指令集,从设计角度而言,我们已经把全书的基本内容学习完毕了。1 但是,到目前为止,汇编语言到底怎么编程实现,到底是如何第4章 8086汇编语言程序设计必须知道的几个概念8086汇编语言的语句8086汇编中的伪指令8086汇编中的运算符汇编语言程序设计宏定义与宏调用汇编语言程序设计实例2第4章 8086汇编语言程序设计必须知道的几个概念2本堂课解决的问题什么是汇编语言、汇编源程序和汇
2、编程序一样吗?汇编又是什么东西?8086汇编语言的语句是如何构成?8086汇编中的伪指令又是什么东东?8086汇编中的运算符有哪些?8086汇编语言源程序的基本结构3本堂课解决的问题什么是汇编语言、汇编源程序和汇编程序一样吗?必须清楚的几个概念汇编语言 以指令的助记符、符号地址、标号等书写程序的语言,实际就是机器语言的符号表示。助记符表示指令的操作码和操作数,符号和标号表示地址、变量和常量。汇编语言源程序 用汇编语言编写的程序,简称源程序。汇编程序 能将汇编源程序翻译成机器语言的程序。汇编 使用汇编程序将汇编源程序翻译成机器语言的过程。4必须清楚的几个概念汇编语言4STACK SEGMENT
3、PARA STACK STACK DB 50 DUP(?)STACK ENDSDATA SEGMENT VAR DB 34DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FAR PUSH DS MOV AX,0 PUSH AX RETSTART ENDPCODE ENDS END START5STACK SEGMENT PARA ST4.1 8086汇编语言的语句 汇编语言由指令性语句和指示性语句组成。指令性语句:CPU执行的语句。 如:MOV AX,BX指示性语句:汇编程序执行的语句。 如:BUF EQU 326
4、4.1 8086汇编语言的语句 汇编语言由指令性语句和指4.1 8086汇编语言的语句 一、指令性语句格式第3章学习的指令均是指令性的STEP: ADD AX, BX ;加法指令标号: 操作码 操作数1, 操作数2 ;注释代表了该指令在代码段的偏移地址74.1 8086汇编语言的语句 一、指令性语句格式第3章4.1 8086汇编语言的语句 存储器操作数的属性有三种:段值属性、段内偏移量和类型。段值:段的起始基地址,即段基址。段内偏移量:从段的开始到操作数的偏移字节数。类型:标号的属性有NEAR和FAR之分;变量的类型有BYTE、WORD、DWORD之分。二、有关属性84.1 8086汇编语言的
5、语句 存储器操作数的属性4.1 8086汇编语言的语句 三、指示性语句格式 标识符(名字) 指示符(伪指令) 表达式 BUFF DB 10 DUP(?) ADDR EQU 200 指示性语句有汇编程序执行,不是真正的CPU执行指令,因此,组成语句的指令称为伪指令或伪操作。94.1 8086汇编语言的语句 三、指示性语句格式 4.2 8086汇编中的伪指令一、 符号定义语句 例: PORT EQU 1234 BUFF EQU PORT58 MEM EQU DS:BP20H COUNT EQU CX ABC EQU AAA1、等值语句 格式:符号名 EQU 表达式104.2 8086汇编中的伪指令
6、一、 符号定义语句 例: 4.2 8086汇编中的伪指令一、 符号定义语句 意义与EQU相同,唯一区别是等值语句相当于常量初始化,而等号语句相当于变量初始化。2、等号语句 格式: NUM34 NUM341114.2 8086汇编中的伪指令一、 符号定义语句 意义4.2 8086汇编中的伪指令二、 变量定义语句变量定义后,就具有了类型属性和地址属性。变量存储低字节在先,高字节在后,低字在先,高字在后。符号名 DB 表达式符号名 DW 表达式符号名 DD 表达式格式:124.2 8086汇编中的伪指令二、 变量定义语句变量定义后,4.2 8086汇编中的伪指令二、 变量定义语句BUFF DW 12
7、34H, 0ABCDH, 8EH DW 79DH, 7B6AH1、定义数组STR DB Welcome !2、定义字符串SUM DD ?, ?3、定义保留存储单元134.2 8086汇编中的伪指令二、 变量定义语句BUFF 4.2 8086汇编中的伪指令二、 变量定义语句复制操作符DUP(Duplication)可预置重复的数值。 ALL_ZERO DB 0,0,0,0,0用复制操作可改为: ALL_ZERO DB 5 DUP(0)4、复制操作保留存储单元 SUM DB 10 DUP(?)144.2 8086汇编中的伪指令二、 变量定义语句复制操作符D4.2 8086汇编中的伪指令二、 变量定
8、义语句 LIT DD CYC CYC: MOV AX , BX5、将已定义的地址存入内存单元 表示把标号CYC的偏移地址和段基址存放在LIT开始的4个字节单元。154.2 8086汇编中的伪指令二、 变量定义语句 4.2 8086汇编中的伪指令三、 段定义语句1.段定义语句格式: 段名 SEGMENT 定位类型组合类型类别 段名 ENDS如: STACK SEGMENT PARA STACK STACK STACK ENDS164.2 8086汇编中的伪指令三、 段定义语句1.段定义语句4.2 8086汇编中的伪指令三、 段定义语句1.段定义语句格式:定位类型: PAGE 本段从页的整数边界开
9、始。 PARA 节的整数边界(省略时隐含为本类型)。 WORD 字的整数边界开始。 BYTE 字节边界,即任何地址开始。174.2 8086汇编中的伪指令三、 段定义语句1.段定义语句4.2 8086汇编中的伪指令三、 段定义语句2. 段假设语句ASSUME 段寄存器名:段名,如: ASSUME CS:CODE,DS:DATA,SS:STACK,ES:EDATA 这里,ASSUME只是指定某段分配给某段寄存器,但并不把段地址装入段寄存器。段寄存器CS、SS、DS、ES。段名则是通过SEGMENT定义过的标志符。184.2 8086汇编中的伪指令三、 段定义语句2. 段假设语4.2 8086汇编
10、中的伪指令三、 段定义语句3. ORG伪指令和地址计数器$ORG 指明在其后存放的代码或数据,以表达式的值作为起始地址,连续存放数据,除非遇到一个新的ORG语句。$ 代表当前地址ORG 106MOV AX,BX ;指令存放地址CS:106194.2 8086汇编中的伪指令三、 段定义语句3. ORG伪4.2 8086汇编中的伪指令三、 段定义语句4. PUBLIC 伪指令和EXTERN伪指令PUBLIC 名字,EXTERN 名字:类型,名字可以是变量或标号PUBLIC 说明本变量或标号可以被其他模块使用EXTERN 说明本变量或标号是在其他模块中定义的。204.2 8086汇编中的伪指令三、
11、段定义语句4. PUBL4.2 8086汇编中的伪指令四、 过程定义语句 汇编语言中,用过程的定义实现子程序的功能,即过程就是子程序、子函数。过程名 PROC NEAR/FAR RET过程名 ENDP过程名:子程序入口的符号地址NEAR/FAR:NEAR指明段内调用,FAR指明段间调用。注意!过程允许嵌套,但不允许交叉。214.2 8086汇编中的伪指令四、 过程定义语句 汇编语4.3 8086汇编中的运算符 这类运算符必须运用在指示性语句中,构成表达式,共3种运算符和2种操作符。算术运算符 、*、/、MOD(求余)逻辑运算符 AND、OR、NOT、XOR224.3 8086汇编中的运算符 这
12、类运算符必须运用在指4.3 8086汇编中的运算符关系运算符 EQ、NE、LT、GT、LE、GEMOV AX,10H LT 16H关系运算符的结果只有真(1)和假(0)分析:10H LT 16H在汇编时得到结果为1,所以,CPU执行指令时,AX1234.3 8086汇编中的运算符关系运算符 EQ、NE、LT、4.3 8086汇编中的运算符分析操作符 1)SEG操作符取变量或标号所在段的段基址。 2)OFFSET操作符取变量或标号的段内偏移地址。244.3 8086汇编中的运算符分析操作符 1)SEG操作符取4.3 8086汇编中的运算符分析操作符MOV BX,SEG BUFF ;BUFF是之前
13、定义的变量取变量BUFF所在段的段基址,传送给BX。MOV BX,OFFSET BUFF取变量BUFF的段内偏移地址,传送给BX。254.3 8086汇编中的运算符分析操作符MOV BX,SEG4.3 8086汇编中的运算符分析操作符MOV BX,SEG BUFFMOV BX,OFFSET BUFF34HBUFF56H78H2000 : 0100264.3 8086汇编中的运算符分析操作符MOV BX,SEG4.3 8086汇编中的运算符分析操作符 3)TYPE操作符 取变量或标号的类型。对变量返回字节数,对标号返回1(NEAR)或2(FAR)BUFF DB 24MOV AL,TYPE BUF
14、F ;AL=?274.3 8086汇编中的运算符分析操作符 3)TYPE操作符4.3 8086汇编中的运算符分析操作符 4)LENGTH操作符 对变量结果为1,对DUP定义的数组给出元素个数。BUFF DB 24 DUP(0)MOV AL,LENGTH BUFF ;AL=?284.3 8086汇编中的运算符分析操作符 4)LENGTH操4.3 8086汇编中的运算符分析操作符 5)SIZE操作符 对DUP定义的数组给出所有元素分配的内存字节数目。 显然,SIZETYPELENGTH294.3 8086汇编中的运算符分析操作符 5)SIZE操作符4.3 8086汇编中的运算符分析操作符 5)SI
15、ZE操作符BUFF DB 10 DIP(?)MOV CX, LENGTH BUFMOV CX, SIZE BUF304.3 8086汇编中的运算符分析操作符 5)SIZE操作符4.3 8086汇编中的运算符合成操作符(综合运算符) 1)PTR运算符 类型 PTR 表达式 对存储器操作数,指明无论原来为何种类型,现在以PTR前面的类型为准。MOV BX, WORD PTR SI314.3 8086汇编中的运算符合成操作符(综合运算符) 1)4.3 8086汇编中的运算符合成操作符(综合运算符) 2)THIS运算符 THIS 类型(或属性) 建立一个与下一个存储单元地址相同的变量或标号,类型取决于THIS后的类型或属性。FIRST EQU THIS BYTESECOND DW 100 DUP (?)324.3 8086汇编中的运算符合成操作符(综合运算符) 2)4.4 8086汇编程序设计汇编语言程序设计的基本步骤分析问题 绘制流程图编写程序检查和调试 汇编语言程序设计的调试的基本步骤?334.4 8086汇编程序设计汇编语言程序设计的基本步骤分析典型的汇编语言程序框架: DATA SEGMENT;定义数据段VAL1 DB 12H , 8EH ;定义变量 DATA ENDS ;数据段结束CODE SEGMENT;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一校区活动方案
- 六一活动冬日活动方案
- 六一活动大集体活动方案
- 六一活动教师活动方案
- 六一活动禁毒活动方案
- 六一漂流礼物活动方案
- 六一联欢会活动方案
- 六一蛋糕活动方案
- 医美考试试题及答案
- 安全生产的试题及答案
- UML期末复习题库(便于打印版)
- 建设项目全过程工程咨询-第二次形成性考核-国开(SC)-参考资料
- 头面部烧伤的护理
- 手术患者评估制度
- 广联达GTJ建模进阶技能培训
- 色卡-CBCC中国建筑标准色卡(千色卡1026色)
- 云南省保山市(2024年-2025年小学五年级语文)人教版期中考试((上下)学期)试卷及答案
- 华南理工大学《材料科学基础》2022-2023学年第一学期期末试卷
- DB11∕T 2000-2022 建筑工程消防施工质量验收规范
- 部编 人教版四年级语文下册全册课内阅读理解练习(含答案)
- 人脸识别门禁系统使用指南
评论
0/150
提交评论