




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 汇编语言基础,要点:,汇编语言基本元素 例子:三个整数相加 编译、链接和运行程序 定义数据 符号常量,1. 汇编语言的基本元素,整数常量 实数常量 字符常量、字符串常量 保留字 标识符 伪指令 指令,1.1 整数常量,由符号(可选)开头,加上一个或多个数字以及一个表示数制基数的字符后缀(可选)构成: |digits radix 基数:h、q/o、d、b、r、t、y 表达式 ()、|、*|/、MOD、 |,单目,双目,1.1 整数常量,整数常量 -26 26d 11011110b 42q 1Ah 0A3h 整数表达式 4+5*2 12-1 mod 5,1.2 实数常量,十进制实数 egerexponent,E+|-integer,+|-,例: 1) 2. 2) +3.0 3) -44.2E+05 4) 26.E5,1.3 字符、字符串常量,以单引号或双引号 可以嵌套 A “d” 4096 “Goodnight, Gracie” “This isnt a test” Say “Goodnight,” Gracie,1.4 保留字,这些单词有特殊的意义,只能用于正确的上下文环境中: 指令助记符 伪指令 属性 运算符 预定义符号,附录D,1.5 标识符,是程序员选择的名字,用来识别变量、常量、过程或代码标号: 1247个字符 默认大小写不敏感 第一个:字母、下划线、$,后续可以有数字 不能与保留字相同,命令行加-Cp可以使其大小写敏感,尽量避免以开头,1.6 伪指令,伪指令:源代码被编译时由编译器识别和执行的指令。 用于定义逻辑段、选择内存模式、定义变量和创建过程等 不区别大小写 .code .data PROC ENDP,1.7 指令,指令时在程序被加载至内存并且开始运行后,在运行期由处理器执行的语句。 标号(可选) 指令助记符(必需) 操作数(通常需要) 注释(可选),1.7.1 标号,标号是充当指令或数据位置标记的标识符。 代码标号:程序代码区(存放指令的地方)中的标号必须以冒号结尾。 数据标号:用于程序的数据区(定义变量的地方),不必用冒号结尾。,target: mov ax,bx jmp target,first BYTE 10,1.7.2 指令助记符,指令助记符是一个简短的单词,用于标识某个指令要执行的操作。 mov add sub mul jmp call,1.7.3 操作数,一条汇编指令可以有03个操作数; 每个操作数可以是寄存器、内存操作数、常量表达式或I/O端口。 stc inc ax mov count,bx shld ax,bx,1,1.7.4 注释,单行注释:“;” 块注释:以COMMENT伪指令以及用户定义的符号开始,COMMENT ! This line is a comment. This line is also a comment. !,COMMENT & This line is a comment. This line is also a comment. &,2. 例子:三个整数相加减,TITLE Add and Subtract (AddSub.asm) ;This program adds and subtracts 32-bit integers INCLUDE Irvine32.inc .code main PROC mov eax,10000h add eax, 40000h sub eax, 20000h call DumpRegs exit main ENDP END main,调用一个显示cpu寄存器值的子程序,调用MS-windows函数来终止程序,不是MASM的关键词,而是Irvine32.inc中定义的命令,指示该行为汇编源程序的最后一行,main是指程序的入口函数,.386 .MODEL flat , stdcall .STACK 4096 ExitProcess PROTO , dwExitCode : DWORD DumpRegs PROTO,2.2 程序模板,TITLE Program Template (Template.asm) ;程序描述: ;作者: ;创建日期: ;版本: ;修改日期: 修改者: INCLUDE Irvine32.inc .data ;(在此插入变量) .code main PROC ;(在此插入可执行代码) exit main ENDP ;(在此插入其他子程序) END main,3. 编译、链接和运行程序,4. 定义数据,BYTE SBYTE WORD SWORD DWORD SDWORD,FWORD QWORD TBYTE REAL4 REAL8 REAL10,4.1 数据定义语句,名称 数据定义伪指令 初始值,初始值,至少有一个初值或“?” 可以是常量、表达式,例子: value1 BYTE A value2 BYTE 0 value3 SBYTE -128 value4 SBYTE +127 value5 SWORD -32768 value6 WORD ?,1) .data list1 BYTE 10, 20, 30, 40 2) list2 BYTE 10, 20, 30, 40 BYTE 50, 60, 70, 80 BYTE 81, 82, 83, 84 3) list3 BTYE 10, 32, 41h, 00100010b list4 BYTE 0Ah, 20h, A, 22h,定义未初始化的变量;这表示将由可执行指令在运行时为变量动态赋值,多个初始值,可以不同基数,4.1 数据定义语句,greating BYTE “Good afternoon”, 0 greating1 BYTE “Welcome to the Encryption Demo program ” BYTE “created by Kip Irvine. ”, 0dh, 0ah, BYTE “If you wish to modify this program” BYTE “send me a copy.”, 0dh, 0ah, 0,回车换行符,行延续符,空字符NULL,4.1 数据定义语句,DUP操作符 使用一个常量表达式作为计数器来重复分配存储空间 常用于为字符串和数组分配空间,1) list1 BYTE 20 DUP(0) ;20字节,全部等于0 2) list2 BYTE 20 DUP(?) ;20字节,未初始化 3) list3 BYTE 4 DUP(”STACK”) ;20字节:“STACKSTACK STACKSTACK” 4) array WORD 5 DUP(?),4.1 数据定义语句,小尾顺序 变量的最低有效字节存储在地址值最小的地址单元中,其余字节在内存中按顺序连续存储,例子:三个整数相加改进,TITLE Add and Subtract (AddSub2.asm) ;This program adds and subtracts 32-bit integers INCLUDE Irvine32.inc .data val1 DWORD 10000h val2 DWORD 40000h val3 DWORD 20000h finalVal DWORD ? .code main PROC mov eax,val1 add eax, val2 sub eax, val3 mov finalVal, eax call DumpRegs exit main ENDP END main,5. 符号常量,通过将标识符(或符号)与整数表达式或文本联系起来而创建的; 注意与变量的区别 不占用实际的存储空间 仅在编译期间使用,不能在运行期改变 等号伪指令 EQU伪指令 TEXTEQU,1)等号伪指令,格式: 名字 = 表达式,COUNT 500 array COUNT DUP (0),COUNT 5 mov al , COUNT COUNT 10 mov al , COUNT COUNT 100 mov al , COUNT,可重复定义,32位的整数值,2)EQU伪指令,格式: 1. name EQU expression 2. name EQU symbol 3. name EQU ,例2: pressKey EQU .data prompt BYTE pressKey,例1:matrix1 EQU 10*10 matrix2 EQU .data M1 WORD matrix1 M2 WORD matrix2,必须是有效的整数表达式,必须是已经用“=”或EQU定义过的符号名,尖括号不能省略,不能重复定义,3)TEXTEQU伪指令,格式: 1. name TEXTEQU 2. name TEXTEQU textmacro 3. name TEXTEQU %constExpr,可以嵌套定义,3)TEXTEQU伪指令,continueMsg TEXTEQU .data prompt1 BYTE continueMsg,rowSize = 5 count TEXTEQU %(rowSize*2) move TEXTEQU setupAL TEXTEQU ,计算数组和字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省师大附中2025届全国高三模拟考二全国I卷物理试题
- 安徽省合肥市第三十五中学2025届高三第二次模拟考试物理试卷含解析
- 课题申报书:激励高校干部新担当新作为的有效路径研究
- 课题申报书:基于虚拟实验环境的学生科学素养精准评价与人机协同干预研究
- 课题申报书:基于思维品质培养的英语课堂教学活动设计与实施研究
- 课题申报书:基于社会网络分析的外语共享调节学习评价研究:框架构建与效度验证
- 项目管理师考试复习方法试题及答案
- 课题申报书:基于开源机器人的儿童人工智能教育课程研究
- 领航中考数学试题及答案
- 课题申报书:基于OBE理念指导下的课程内容设计及其考核体系研究
- 深入浅出Serverless:技术原理与应用实践课件
- 公路施工技术高职PPT完整全套教学课件
- 年产十万吨丙烯腈生产工艺设计
- 人教版高中物理必修二全册同步课时练习
- 城市社区管理中存在的问题及对策研究正文内容
- 年产10吨功能益生菌冻干粉的工厂设计改
- (完整)人教版 高一物理课后习题答案
- GB/Z 26337.1-2010供应链管理第1部分:综述与基本原理
- GB 150-1998钢制压力容器
- 幼儿园绘本:《超级细菌王国》
- 2023年海南省财金集团有限公司招聘笔试模拟试题及答案解析
评论
0/150
提交评论