最新微机原理--第4章汇编语言程序设计PPT课件.ppt
《最新微机原理--第4章汇编语言程序设计PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理--第4章汇编语言程序设计PPT课件.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理-第4章汇编语言程序设计本 章 内 容4.1汇编语言的格式汇编语言的格式4.2语句行的构成语句行的构成4.3指示性语句指示性语句4.4指令语句指令语句4.5汇编语言程序设计及举例汇编语言程序设计及举例2(2)(2)字符串常量字符串常量 用用单引号单引号括起来的字符或字符串括起来的字符或字符串 汇编时被翻译成对应的汇编时被翻译成对应的ASCIIASCII码码数据项数据项操作数包括常量、变量、标号及表达式操作数包括常量、变量、标号及表达式1.1.常量常量(1)(1)数字常量数字常量 二进制常量二进制常量 以以B B结尾结尾 十进制常量十进制常量 以以D D结尾或结尾或省略省略 八进制常量八
2、进制常量 以字母以字母Q(或字母或字母O)结尾结尾 十六进制常量十六进制常量 以以H H结尾结尾9n变量是内存中的数据区变量是内存中的数据区n在程序中作为在程序中作为存储器操作数存储器操作数来使用来使用n变量有三种属性变量有三种属性n段段 值值变量所在段的首地址变量所在段的首地址n偏移量偏移量变量单元地址与段首地址之间的位移量变量单元地址与段首地址之间的位移量n类类 型型字节、字和双字字节、字和双字2.变量10n标号是标号是指令所存放单元的符号地址指令所存放单元的符号地址,可作为可作为转移指令或转移指令或CALLCALL指令的转移地址。指令的转移地址。n标号也有三种属性:标号也有三种属性:段值
3、段值总是在总是在CSCS段寄存段寄存器中器中,偏移量偏移量概念与变量同概念与变量同,类型类型分分NEARNEAR和和FARFAR两种。两种。n若没有对类型进行说明若没有对类型进行说明,默认为默认为NEARNEAR。3.标号114.表达式(1)算术运算符算术运算符n+、-、*、/,以及,以及MOD例例MOV AL,2*7MOV AL,2*7 LEA SI,SUM+3LEA SI,SUM+3(2)逻辑运算符逻辑运算符nANDAND、OROR、XORXOR和和NOTNOT 例例 MOV CL,36H AND 0FHMOV CL,36H AND 0FHn注意:注意:逻辑运算符也是逻辑运算符也是8086
4、/80888086/8088的指令助记符的指令助记符n运算符在汇编时进行运算符在汇编时进行n指令在执行时进行指令在执行时进行12(3)关系运算符关系运算符nEQ(EQ(相等相等),),NE(NE(不等不等),),LT(LT(小于小于),),GT(GT(大于大于),),LE(LE(小于或等于小于或等于),),GE(GE(大于或等于大于或等于)n关系为关系为真真,结果为结果为0 0FFFFHFFFFHn关系为关系为假假,结果为结果为0 0例:例:MOV BX,PORT_VAL GE 5MOV BX,PORT_VAL GE 513(4)取值运算符和属性运算符取值运算符和属性运算符(P103)n取值运
5、算符取值运算符获得存储器操作数的属性获得存储器操作数的属性nOFFSETOFFSET获得标号或变量的获得标号或变量的偏移地址偏移地址nSEGSEG获得标号或变量的获得标号或变量的段地址段地址例:例:MOV SI,MOV SI,OFFSET OFFSET STRI1STRI1n与与 LEA SI,STRI1 LEA SI,STRI1 类似类似n属性运算符属性运算符nPTRPTR指定操作数的类型指定操作数的类型例例:MOV AL,BYTE PTR VARMOV AL,BYTE PTR VAR14(5)(5)其它运算符其它运算符1 1)方括号)方括号 “”表表示示存存储储器器操操作作数数,方方括括号
6、号里里的的内内容容表表示操作数的偏移地址。示操作数的偏移地址。(2 2)段超越运算符)段超越运算符“:”“:”跟跟在在某某个个段段寄寄存存器器名名之之后后表表示示段段超超越越用用来来指指定定一一个个存存储储器器操操作作数数的的段段属属性性,而而不不管管其原来隐含的段是什么。其原来隐含的段是什么。154.3 指示性语句(伪指令)常用的伪指令有常用的伪指令有:n符号定义伪指令符号定义伪指令n数据定义伪指令数据定义伪指令n段定义伪指令段定义伪指令n过程定义伪指令过程定义伪指令n宏定义伪指令宏定义伪指令n结束语句结束语句164.3.1 符号定义语句(P99)1.1.等值伪指令等值伪指令EQUEQU格式
7、:格式:符号名符号名EQUEQU表达式表达式 或:或:新符号名新符号名 EQU EQU 老符号名老符号名例:例:CONSTANTCONSTANTEQUEQU100100NEW_PORTNEW_PORTEQUEQUPORT_VAL+1PORT_VAL+1注意:注意:EQUEQU伪指令在未解除前伪指令在未解除前,不能重新定义。不能重新定义。2.2.解除伪指令解除伪指令PURGEPURGE例:例:PURGEPURGE NEW_PORTNEW_PORT NEW_PORT NEW_PORTEQUEQUPOTR_VAL+8POTR_VAL+8173.3.等号等号(=)(=)伪指令伪指令与与EQUEQU类似
8、类似,但允许重新定义但允许重新定义例:例:EMP=7EMP=7;值为值为7 7EMP=EMP+1EMP=EMP+1;值为值为8 8184.3.2 数据定义伪指令n格式格式:变量名变量名伪指令伪指令操作数操作数;注释;注释n其中变量名用符号地址表示,后面不能跟冒号其中变量名用符号地址表示,后面不能跟冒号n伪指令伪指令助记符助记符 DBDB用来定义用来定义字节字节DWDW用来定义用来定义字字DDDD用来定义用来定义双字双字例例1:DATA_BYTE DATA_BYTE DBDB 10,5,10H10,5,10H DATA_WORD DATA_WORD DWDW 100H,100,-4100H,10
9、0,-4 DATA_DW DATA_DW DDDD 2*30,0FFFBH2*30,0FFFBH19汇编后:汇编后:DATA_BYTEDATA_DWDATA_WORD10510H100H100-4600FFFBHDATA_BYTE DB 10,5,10HDATA_WORD DW 100H,100,-4DATA_DW DD 2*30,0FFFBH20例例2 2:操作数可以是字符串:操作数可以是字符串STR STR DBDBHELLOHELLOSTRHELLO注意注意:DB AB DW AB 41 A 42B 42 B 41A21?操作数用来保留存储空间操作数用来保留存储空间,但不存入数据但不存入
10、数据.例例3 3:ABCABCDBDB0,1,?,?,?0,1,?,?,?LPI LPIDWDW?,54,?,54,?汇编后:汇编后:ABCLPI01?54数据定义中的三个特殊符号:?,数据定义中的三个特殊符号:?,DUP,$22复制操作符复制操作符DUP (P101)DUP (P101)例例4:4:ABC DB 0,1,3 DUP(?)ABC DB 0,1,3 DUP(?)例例5:5:DO-2 DB 2 DUP(0,1,2,?)DO-2 DB 2 DUP(0,1,2,?)与与 DO-2 DBDO-2 DB0,1,2,?,0,1,2,?0,1,2,?,0,1,2,?等价等价$:表示的是地址计数
11、器的当前值表示的是地址计数器的当前值 例:例:BUFFER DW 3,4,$+3BUFFER DW 3,4,$+3 设设BUFFERBUFFER的的偏偏移移地地址址为为00880088H,H,则则汇汇编编后后$+3$+3的的值值为为多少多少23n例:例:BUFFER DW 3,4,$+3BUFFER DW 3,4,$+3n设设BUFFERBUFFER的偏移地址为的偏移地址为00880088H,H,则汇编后如则汇编后如下图所示:下图所示:BUFFER0088H008CH+324 例:分析下面申请数据例:分析下面申请数据区的存储内容区的存储内容 NUM DB 75H ;申请一字节,数为申请一字节,
12、数为“75H”ARRY DW 20H DUP(0);申请申请20H个字,数均为个字,数均为“0”ADR1 DW NUM ;申请一字,预置申请一字,预置NUM的偏移地址的偏移地址 ADR2 DD NUM ;申请双字,预置申请双字,预置NUM的逻辑地址的逻辑地址 ADR3 DW ARRY+2 ;申请一字,预置申请一字,预置ARRY的偏移地址加的偏移地址加2 设:设:NUM的段地址为的段地址为0915H,NUM的偏移地址为的偏移地址为0004H。75DS:NUMDS:ARRY0000DS:ADR1DS:ADR2DS:ADR3 40H 个单元个单元04000400150907000915:000409
13、15:00050915:00450915:00470915:004B0915:000025分析运算符(分析运算符(P.103P.103 ,也称为数值返回运算符),也称为数值返回运算符)在源程序中,在源程序中,只对存储器进行操作只对存储器进行操作,读取存储器的属性。,读取存储器的属性。(1)SEG 运算符运算符求取某存储器单元的段地址。求取某存储器单元的段地址。例:例:MOV AX,SEG NUM (2)OFFSET 运算符运算符 求取某存储器单元的偏移地址。求取某存储器单元的偏移地址。例:例:MOV AX,OFFSET NUM (3)TYPE 运算符运算符求取某存储器单元的类型属性。求取某存储
14、器单元的类型属性。例:例:MOV BL,TYPE NUM属性类型属性类型属性值属性值变变量量 字节字节 01H 字字 02H 双字双字 04H 四字四字 08H 十字十字 0AH26 举例:举例:27(4)LENGTH运算符运算符求某存储器求某存储器/存储器数组的长度存储器数组的长度(P104)LENGTH运算符返回一个与存储器地址操作数相联系的单元数运算符返回一个与存储器地址操作数相联系的单元数(所定义的基本单元的个数所定义的基本单元的个数)。注意:注意:要用要用LENGTH返回的存储区必须用返回的存储区必须用DUP()来定义,否则返回来定义,否则返回值为值为1。分析运算符分析运算符SIZE
15、返回一个为存储器地址操作数所分配的字节数。返回一个为存储器地址操作数所分配的字节数。一般来说,若一个存储单元操作数一般来说,若一个存储单元操作数X,则,则sizeX=(lengthX)(typeX)(5)SIZE 运算符运算符求某存储器求某存储器/存储器数组的长度。存储器数组的长度。2829合成运算符合成运算符 (1)PTR运算符运算符(P.104)格式:格式:类型类型 PTR 变量变量/标号标号/存储器存储器变量变量/存储器存储器类型类型标号标号BYTE (字节)字节)WORD (字)字)DWORD(双字)双字)NEAR(短调用)短调用)FAR (长长调用调用)PTR举例举例 NUM1 DB
16、 20H DUP(?)(?)NUM2 DW 10H DUP 10H DUP(0 0)MOV AX,WORD PTR NUM1 MOV BYTE PTR NUM2,BL 临时修改操作数的属性,临时修改操作数的属性,并不分配存储器并不分配存储器30(2)THISTHIS属性运算符伪指令属性运算符伪指令 (P106)(P106)为当前存储单元定义一指定变量的类型,并不分配存储空间为当前存储单元定义一指定变量的类型,并不分配存储空间段地址和段内偏移是汇编时的当前值段地址和段内偏移是汇编时的当前值格式:变量格式:变量/标号标号 EQU THIS 类型类型 例:例:WBUFFER1 EQU THIS WO
17、RD BUFFER1 DB 100 DUP(0)字节操作采用字节操作采用BUFFER1,字操作采用字操作采用WBBUFFER1合成运算符合成运算符314.3.3 段定义语句(P106)因因8086/8088 8086/8088 CPUCPU的存储器是分段的的存储器是分段的,这就需要有这就需要有段定义语句。段定义语句。与段有关的伪指令有:与段有关的伪指令有:SEGMENTSEGMENT、ENDSENDS、ASSUMEASSUME 段定义伪指令的格式如下:段定义伪指令的格式如下:段名段名 SEGMENT SEGMENT 定位类型 组合类型 类别 段名段名 ENDSENDS例:例:MY_SEGMY_
18、SEG SEGMENT SEGMENT PARAPARA AT 1A2BHAT 1A2BH32段定位段定位(P109)n表示对逻辑段起始边界的选择,可为:表示对逻辑段起始边界的选择,可为:nPAGE段从一个页边界开始段从一个页边界开始(XXX00H,256Bytes/Page)nPARA 段节边界段节边界16倍数地址开始(倍数地址开始(XXXX0H)nDWORD段从一个段从一个4倍数地址开始倍数地址开始nWORD段从一个偶地址开始段从一个偶地址开始nBYTE段可以从任意单元开始段可以从任意单元开始n完整段定义伪指令的默认定位属性是完整段定义伪指令的默认定位属性是PARAnMY_SEGMY_SE
19、G SEGMENT SEGMENT PARAPARA AT 1A2BHAT 1A2BHn段的起始边界为段的起始边界为16倍数地址开始,段地址为倍数地址开始,段地址为1A2BH33n成对成对出现出现n前面的前面的段名段名一致一致n二者之间的部分二者之间的部分n对对数据段数据段、附加段附加段及及堆栈段堆栈段,一般是,一般是符号符号、变量变量定义等伪指令定义等伪指令。n对于对于代码段代码段则是则是指令指令及及伪指令伪指令。n段和段寄存器的关系,可由段和段寄存器的关系,可由ASSUMEASSUME语句来实现语句来实现SEGMENT 和和 ENDS34 设定段寄存器伪指令ASSUME SUME ASSU
20、MEASSUME 段寄存器名段寄存器名:段名段名 ,段寄存器名,段寄存器名:段名段名,.ASSUME ASSUME 伪伪指令指令应放在可执行程序开始位置的应放在可执行程序开始位置的前面前面35nASSUMEASSUME伪指令只是告知汇编程序有关段寄存器与伪指令只是告知汇编程序有关段寄存器与段的关系段的关系,并没有给段寄存器赋予实际的初值并没有给段寄存器赋予实际的初值。n将段基址装入段寄存器将段基址装入段寄存器 MOVMOVAX,AX,DATADATA MOV MOVDS,DS,AXAX MOV MOVESES,AX,AX 注意:注意:代码段代码段不需要用户装,由不需要用户装,由初始化程序初始化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 原理 汇编语言 程序设计 PPT 课件
限制150内