微机原理(第6讲)第3章汇编语言基础课件

上传人:我*** 文档编号:145967107 上传时间:2020-09-25 格式:PPT 页数:48 大小:522.50KB
返回 下载 相关 举报
微机原理(第6讲)第3章汇编语言基础课件_第1页
第1页 / 共48页
微机原理(第6讲)第3章汇编语言基础课件_第2页
第2页 / 共48页
微机原理(第6讲)第3章汇编语言基础课件_第3页
第3页 / 共48页
微机原理(第6讲)第3章汇编语言基础课件_第4页
第4页 / 共48页
微机原理(第6讲)第3章汇编语言基础课件_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《微机原理(第6讲)第3章汇编语言基础课件》由会员分享,可在线阅读,更多相关《微机原理(第6讲)第3章汇编语言基础课件(48页珍藏版)》请在金锄头文库上搜索。

1、第3章 汇编语言基础,3.2.3 常量表达 3.3 变量应用,第3章 汇编语言基础,3.1 源程序结构 3.1.1 语句格式 3.1.2 程序格式 3.1.3 开发方法 3.2 数据表示 3.2.1 数制 3.2.2 编码 3.2.3 常量表达 3.3 变量应用 3.3.1 变量定义 3.2.2 变量属性,3.2.3 常量表达,1. 常数 2. 字符和字符串 3. 符号常量 4. 数值表达式,常量具有确定数值,1. 常数,十、十六和二进制数 以后缀字母区分 十进制:D(可省略) 十六进制:H 二进制:B 以字母AF开头的十六进制常数,前面加0 例:13,13D,20H,0FFH,010111B

2、,2. 字符和字符串,英文引号( 或 “ ” )括起来的单个或多个字符 数值 每个字符对应的ASCII码值 例,3. 符号常量用标识符表达一个数值,符号定义伪指令 等价 EQU 格式(1): 符号名 EQU 数值表达式 例: NUM EQU 1234 格式(2): 符号名 EQU 例: INST EQU A 等号 = 格式: 符号名 = 数值表达式 例: X = 12,DosWriteCharequ2 CarriageReturn =13 CallDOSequ CODSEGMENT ASSUMECS:COD STA: movah, DosWriteChar; movah,2 movdl, Ca

3、rriageReturn; movdl,13 CallDOS; int21h MOV AH, 4CH INT 21H CODENDS ENDSTA,例. 符号常量(只有代码段的程序),“=” 与 “EQU” 的异同,相同点 定义是符号不是变量,不占用存储器单元 不同点 = 定义过的符号可以重新定义 EUQ 定义过的符号不能重新定义,例. 符号不是变量,不占用存储器单元,xequ1 xequ2 y=3 y=y + 1 CODSEGMENT ASSUMECS:COD STA: movbx, x movcx, y MOV AH, 4CH INT 21H CODENDS ENDSTA,例. 找出错误(

4、只有代码段的程序),4. 数值表达式,由常量及算术逻辑运算符、或关系运算符连接而成的算式 汇编时产生一个数值 运算符 算术操作符 +,-,*,/, MOD, SHL, SHR 逻辑操作符 AND,OR,XOR,NOT 关系运算符 EQ,NE,LT,GT,LE,GE,CODESSEGMENT ASSUMECS:CODES START: MOV AX, 12 4 MOV AX, 9 MOVAX, 80H OR 70H ANDBL, 46H AND 0FH MOVBX, 1 LT 5 MOVBX, 8 LT 5 MOV AH, 4CH INT 21H CODESENDS ENDSTART,例. 数值

5、表达式(只有代码段的程序),; MOV AX, 8 ; MOVAX, 0F0H ; ANDBL, 06H ; MOVBX, 0FFFFH(条件成立) ; MOVBX, 000H(条件不成立),注意:算术运算符不影响标志位,例:计算 80H + 90H 方法:使用数值表达式 MOVAL, 80H+50H ;(AL)=D0H,CF=不变 方法 :使用加法指令 MOVAL, 80H ADDAL, 50H;(AL) = D0H,CF = 1,补. 地址表达式,组成:常量、变量、标号、寄存器的内容及一些运算符 值:表示存储器地址 属性 段属性(SEGMENT)、偏移量属性(OFFSET)、类型属性(TY

6、PE ,如:字节、字或双字) 例: ES:SI+4 LEA BX, string + 4,3.3 变量应用,补充. 数据存储方式 3.3.1 变量定义 3.2.2 变量属性,补充. 数据存储方式,数据长度,LSB: Least Significant Bit MSB: Most Significant Bit,存储器系统的两种映射机制,小端存储器系统 数据的高字节存放在高地址中 大端存储器系统 数据的高字节存放在低地址中,0 x12 0 x34 0 x56 0 x78,0 x78 0 x56 0 x34 0 x12,例. 0 x12345678在A地址的存储,小端存储模式,大端存储模式,Int

7、el及其兼容 CPU,低对低,低对高,小端方式,3.3.1 变量定义,作用 分配存储空间 存储空间赋初值 创建变量名 1.变量定义格式 2. ?操作数 3. DUP重复操作符 4. 偏移地址或全地址初始化存储器 5. 变量定位,3.3.1 变量定义,1.变量定义格式 变量名变量定义伪指令初值表 常用的变量定义伪指令 DB 字节 DW 字 DD 双字 DF 3字 DQ 4字(64位) DT 10字节(80位),常用的变量定义伪指令,DB 字节 DW 字 DD 双字,(1)存放时,低对低 高对高,例 XDB25H YDW4142H ZDD12345678H,25H,42H,41H,78H,56H,

8、地址 低 高,34H,12H,(2)初值可以是数值表达式,例 PORT_VAL EQU 12H IN_PORTDBPORT_VAL OUT_PORTDBPORT_VAL+1,12H,13H,地址 低 高,IN_PORT,OUT_PORT,(3)字符串的定义,例 STR DBHELLO,STR,H,E,L,L,O,48H,45H,4CH,4CH,4FH,地址 低 高,每个字符的值为它的ASCII码值 字符串只能用DB定义,(4)长字符串的定义,3个及其以上的字符串,只能用DB定义 字符串长度不超过两个字符时,也可以用DW来定义,例1. STRDWAB,CD,B,42H,地址 低 高,41H,44

9、H,43H,STR,A,D,C,例2. 判断对错 Str1 DW abcd Str2 DD abcd,42H,(5)可以没有变量名,例 注意下面两个定义的不同之处: DB AB DW AB,A,B,B,A,41H,42H,41H,;相当于 DB A, B ;41H在低字节,42H在高字节,;相当于 DW 4142H ;42H在低字节,41H在高字节,地址 低 高,(6)负数存放补码,例 data SEGMENT xx DB 1, -1, 0fcH yy DW 1, -1, 0fcH zz DD 1,- 1, 0fcH data ENDS,例. 判断对错,.model small;小模式存储 .

10、386;使用80386指令 .DATA;数据段 OPER1 DB 1,2 OPER2 DW 1234H,5678H .CODE;代码段 .startup;程序开始 MOVAX, OPER1+1 MOVAL, OPER2 .exit;程序结束,返回DOS END;汇编结束, ;类型不匹配 ;类型不匹配,2. ?操作数,作用 预留内存单元,但不赋值(初值不确定,即:未赋初值),以存放运算结果 例 SUM DB ?;为变量SUM分配一个字节单元 ASG DW ?;为变量ASG分配一个字单元,3. DUP 重复操作符,例1. ALL_ZERO DB 0,0,0,0,0,0 ;等价于 ALL_ZERO

11、DB 6 DUP(0),地址 低 高,ALL_ZERO,00H,00H,00H,00H,00H,00H,例2. ZIPS DB 100 DUP (0) DB 2 DUP (0,3 DUP (1) 设ZIPS的偏移地址为0080H,ZIPS,00H,. . .,00H,00H,01H,01H,01H,00H,01H,01H,01H,3. 偏移地址或全地址初始化存储器,作用 当操作数是标号或变量时 可用DW或DD 用标号或变量操作数的 偏移地址或全地址 来初始化存储器,例:设数据段定义了变量 VAR ,其段地址为 0A0CH, 偏移地址为 2345H 则 VAR DB 12H,34H VAR1 D

12、W VAR VAR2 DD VAR+1,地址 低 高,VAR1,45H,23H,46H,23H,0CH,0AH,12H,34H,VAR,VAR2,5. 变量定位,作用 控制变量存放的偏移地址 格式 1:将表达式的值 (065535) LC ORG 表达式 2:将LC的当前值$表达式的值(065535) LC ORG $ + 表达式,软件计数器(LC)地址计数器 LC保存当前指令的地址,在每个段定义开始处,它被复位为0,例1.设DATA的段地址为2000H DATASEGMENT ORG0004H AVR1DW 2030H AVR2DB 40H DWVRDW AVR1 DDVRDD AVR2 D

13、ATA ENDS,00H,20H,00H,06H,00H,04H,40H,20H,30H,AVR1,AVR2,DWVR,DDVR,0004H,0006H,0007H,0009H,例2. VECT SEGMENT ORG 10 VECT1 DW 47A5H ORG 20 VECT2 DW 0C956H ORG $+8;(跳过8个字节的存储区) VECT3 DW 0123H VECT ENDS,01,23,. . .,C9,56,. . .,47,A5,10 20,16H+8=1EH,14H 15H 16H,例3. ARRAY DW 1,2,$+4,3, 4, $+4,0074H 0075H 76

14、H 77H 78H 79H 7AH 7BH 7CH 7DH 7EH,00H,82H,00H,04H,00H,03H,00H,7CH,00H,02H,00H,01H,ARRAY,78H+4 =$+4=7CH,7EH+4 =$+4=82H,3.2.2 变量属性,两类三个 地址属性:首个变量所在存储单元的逻辑地址 段地址 偏移地址 类型属性:指变量定义的数据单位 字节 BYTE、字 WORD、双字 DWORD、3字 FWORD、4字 QWORD、10字节 TBYTE,地址操作符,用于获取变量名的地址属性,n:+n 后移 n 个字节存储单元 例: MOV AL, AVR21;(AL)=04H MOV

15、AX, DWVR1;(AX)=0600H SEG 返回标号或变量的段地址 例: MOV AX, SEG AVR1;(AX)=2000H OFFSET 返回标号或变量的偏移地址 例: MOV SI, OFFSET DDVR;(SI)=0009H,00H,20H,00H,06H,00H,04H,40H,20H,30H,AVR1,AVR2,DWVR,DDVR,0004H,0006H,0007H,0009H,设DATA的段地址为 2000H,变量名 数据 偏移地址,类型操作符,提取变量名的类型属性,例1. 变量名按照指定的类型使用(1),例1. (1) INC BX INC BYTE PTR BX I

16、NC WORD PTR BX,例1. (2),ARRAY1DB 0,1,2,3,4 ARRAY2DW 0,1,2,3,4 MOV BX,WORD PTR ARRAY13 MOV CL,BYTE PTR ARRAY26,运行结果:(BX) = 0403H (CL) = 03H,0403H,03H,00H,01H,02H,03H,04H,00H,00H,01H,00H,02H,00H,03H,ARRAY1,ARRAY2,00H,.model small;小模式存储 .386;使用80386指令 .DATA;数据段 BUF1DB100 DUP (0) BUF2DW10, 5 DUP (2) BUF3DD5 DUP (1, 2 DUP (0) .CODE;代码段 .STAR

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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