04 汇编语言程序设计
第四章 80x86汇编语言程序设计
第一节第二节第三节第四节第五节第六节
汇编语言概述汇编语言语句的组成汇编语言的语句宏汇编指令编写完整的汇编语言程序汇编语言程序设计
第一节
汇编语言概述
一个简单的8086系统下的汇编语言程序:数 DATA SEGMENT据 STRING DB‘HELLO WORLD!’, 0DH, 0AH,‘$’段DATA CODE
代码段
ENDS SEGMENT ASSUMECS:CODE, DS:DATA BEGIN: MOV AX, DATA MOV DS, AX;初始化数据段的段地址 MOV AH, 09H LEA DX, STRING;输出字符串 INT 21H MOV AH, 4CH INT 21H;调用4CH号系统功能返回DOS CODE ENDS END BEGIN
第二节汇编语言语句的组成汇编语言程序的语句中包含的元素:字符集保留字与标识符常量、变量与标号表达式及运算符
一、字符集允许使用的字符:字母,包括大写字母A~Z和小写字母a~z;数字,包括0~9;特殊字符,包括:+ - */=()[]<>;,‘“ .—:?@$&及空格、制表符、回车、换行等。注意:除了字符串,字母都是不区分大小写一系列相连的空格、制表符效果相当于一个空格一系列相连的回车换行相当于一次回车换行分号“;”后一直到行尾的内容都是注释字符“&”若用于某行的开头,则表示该行是上一行的续行
二、保留字与标识符1、保留字在汇编语言中有特定意义的词,可分为:指令助记符及指令前缀如:MOV、ADD、REP等寄存器名如:AX、EBX、CL等伪指令助记符如: DB、SEGMENT等其他保留字,包括运算符、操作符等如: EQ、LT、OFFSET、SEG等
2、标识符标识符是程序员自己起的名字,如变量名、标号、段名、过程名等标识符的命名规则:标识符必须由字母、数字和几个特殊字符(包括 _@$?:)组成,而且第一个字符不能是数字(否则可能与16进制的数字混淆)标识符不能与某个保留字相同,以免混淆尽量用有意义的英文单词或缩写来命名,以增加程序的可读性
三、常量、变量与标号1、常量数字常量二进制:以B结尾,如10101010B八进制:以Q结尾,如123Q,67Q十进制:以D结尾,“D”可省略,如1234D,5678十六进制:以H结尾,A~F开头的数须在前面加“0”如:1234H,0FFFFH字符串常量用单引号或双引号引起来的一个或多个ASCII字符每个字符的值等于其ASCII码值例:‘A’=41H一个字节,‘12’=31H、32H两个字节
2、变量变量是存放在存储器中的操作数可通过变量的名字来访问变量变量具有三个属性:段属性,即变量所在的段的基地址;偏移量属性,即变量相对于段的起始地址的偏移量;类型属性,包括BYTE(字节)、WORD(字)、DWORD (双字)、FWORD(6字节)、QWORD(四字)、TBYTE (10字节)等。
3、标号
标号是一条指令性语句的起始地址变量具有三个属性:段属性,即变量所在的段的基地址;偏移量属性,即变量相对于段的起始地址的偏移量;类型属性,包括NEAR(近程,即段内)、FAR(远程,即段间)
四、表达式及运算符由常量、变量、标号和一些运算符、操作符构成的式子表达式的值在汇编的过程中就已经被汇编程序计算出来运算符的分类:算术运算符逻辑运算符关系运算符属性运算符数值返回操作符
1、算术运算符五种算术运算:加:+、减:-、乘:*、除:/、模:MOD
合法地址表达式:地址-地址(处在同个段中);地址±常数ADDR1-ADDR2(假设两个地址处在同个段中) ADDR1+1 ADDR2-2
非法地址表达式:地址+地址;地址*地址;地址/地址;常量地址;地址-地址(处在不同段中)ADDR1+ADDR2 ADDR1*ADDR2 ADDR1/2 100-ADDR1 SEG1_A-SEG2_B (假设两个地址处在不同段中)
2、逻辑运算符五种算术运算:与AND、或OR、异或XOR、非NOT、逻辑左移SHL、逻辑右移SHR
只用于数字表达式中例:MOV MOV MOV MOV AL,10101010B AND 11001100B;AL←10001000B AL,10001000B OR 01000100B;AL←11001100B AX,1000100010001000B XOR 1100110011001100B;AX←0100010001000100B AX,NOT 1010101010101010B;AX←0101010101010101B
3、关系运算符六种关系运算符: EQ(Equal,相等) NE(Not Equal,不等) LT(Less Than,小于) LE(Less than or Equal,小于或等于) GT(Great Than,大于) GE(Great than or Equal,大于或等于)运算结果:关系为真,则运算结果为0FFFFH关系为假,则运算结果为0
4、属性运算符
(1)型重新指定操作符PTR功能:临时指定或修改存储器操作数的数据类型属性或地址类型属性
格式:类型 PTR表达式例: VAR_W DW 1234H MOV AX,VAR_W;AX←1234H MOV AL,BYTE PTR VAR_W;AL←34H
PTR与EQU连用作用:定义与表达式类型不同的新变量名或新标号,但不分配新的存储单元例: 数据段定义:DATA_B DATA_W
DB 1,2,3,4 EQU WORD PTR DATA_B
代码段:MOV AL,DATA_B MOV AX,WORD PTR DATA_B MOV AX,DATA_W (第2、3条指令等价);AL←1;AL←0201H;AL←0201H
(2)类型指定操作符THIS功能:指定或说明变量或标号的类型例1:DATA_W DATA_B MOV MOV MOV EQU THIS WORD DB 1,2,3,4 AL,DATA_B AX,WORD PTR DATA_B AX,DATA_W
;AL←1;AL←0201H;AL←0201H
例2:ADDR_F ADDR_N: EQU THIS FAR MOV AX,1 JMP ADDR_F;等价于:JMP
FAR PTR ADDR_N
(3)短转移操作符SHORT
功能:一般用在JMP指令
告诉汇编程序该JMP指令是一个短程转移指令例:JMP…… LAB:…… SHORT LAB
5、数值返回操作符
(1)SEG、OFFSET功能: SEG操作符用于求一个标号或变量所在段的基地址 OFFSET操作符则
用于求标号或变量在段中的地址偏移量例如,对于代码段中的一条指令: 2000H:1234H ADDR: INC CX;段地址=2000H,偏移量=1234H则有: MOV AX,SEG ADDR;AX←2000H MOV AX,OFFSET ADDR;AX←1234H;与指令“LEA AX,ADDR”等价
…… 此处隐藏:1268字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




