




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章汇编语言与汇编程序 宏汇编语言及编程 汇编语言 一种面向机器的程序设计语言 是一种用符号表示的低级程序设计语言 机器语言的符号化描述 宏汇编语言 增加伪 宏指令语句构成汇编语言程序设计语言 汇编 汇编语言编写的程序不能由机器直接执行 必须经汇编程序翻译成机器语言程序 列表文件 LST文件 同时列出汇编语言源程序和机器语言目标程序的文件 交叉索引文件 CRF文件 列出程序中使用的符号 变量和标号以及引用情况 汇编过程 汇编与连接 宏汇编语句的基本格式 指令性语句 由指令构成 标号 操作码操作数 注释 如 START MOVAX DATA 指示性语句 由命令 伪指令 构成 名字 变量 命令参数 注释 如 DATASEGMENTAT2000H 代码段不能如此指定段地址 2 1符号指令中的表达式 数字常量 直接用数字进行表示的常量 二进制 10000100B 11110001020100B十进制 12356D十六进制 12ABH 0F56AH 字母打头必须前面补0 否则将出现汇编语法错误 如 MOVAX 100DMOVBL 0FAHMOVCL 10101000B 2 1 1常量和数值表达式 常量 符号常量 用标识符 常量名 表示的常量 命名规则 1 0 31个ASCII码字符2 由A Z a z 0 9 及下划线构成 3 不能单独作为标识符 4 不能为保留字及运算符 2 1符号指令中的表达式 符号常量定义 常量名EQU 数值或字母例如 AAEQU30BB 1000HCCEQU10001010BQQ ABC MOVAX AAMOVAL AAMOVBX BB 改善程序的可读性 程序的修改调试方便 可重复定义EQU不可重复定义常量不占有内存单元 2 1符号指令中的表达式 2 1 2变量 变量名是内存单元地址的符号表示 变量有三个属性 字节DB 8位 一个字节存贮单元字DW 16位 二个连续字节存贮单元双字DD 32位 四个连续字节存贮单元双字DQ 64位 8个连续字节存贮单元双字DT 80位 10个连续字节存贮单元 段地址 段寄存器的值 变量一般定义在当前数据段段内偏移地址变量类型 变量所在存贮单元的类型 由存贮伪指令指定 2 1符号指令中的表达式 变量定义 变量名存贮伪指令表达式1 表达式2 例如 XDB0AHAAEQU1ABC3FHYDWAASTRDB ABCD12 重复子句表达式 NDUP 表达式 例如 AADB10DUP 0 BBDW5DUP 21 5 0DH 0AH DATA1X0AHPA Y3FH低0BCH1AH 高 STR41H42H43H44H31H32H MOVAL X 源操作数为直接寻址 等价于MOVAL X的偏移地址 2 1符号指令中的表达式 2 1 3标号 是指令性语句存放地址的符号表示 也可以是过程名 有三个属性 常用于指令的跳转和过程 子程序 调用 例如 MOVSI 100HMOVDI 200HMOVCX 10HLOOP1 MOVAL SI MOV DI ALINCSIINCDILOOPLOOP1 此处LOOP1不是保留字 标号定义 标号名 机器指令语句 段地址 代码段寄存器的值偏移地址 在代码段中的段内偏移地址 类型 只能在本段中使用的为NEAR类型 为缺省类型 FAR类型无此限制 2 1符号指令中的表达式 2 1 4表达式与运算符由操作数 常量 变量 标号 和运算符构成 在汇编时完成相应的运算 结果是数字常数 OBJ 目标程序中不存在表达式 算术运算符 MOD除法取余运算 10MOD3 1SHL左移运算21HSHL1结果42H 相当于乘2的操作 SHR右移运算例 BLDB 84SHR2 结果21H 相当于除4的操作 此时的SHL SHR是与指令同名的运算符 无机器码 移位运算在汇编阶段完成 关系运算符EQ NE LT LE GT GE运算的结果为真用0FFFFH表示 否则为0 例如 MOVBX PORTLE5 AND20H 当POTR小于5为MOVBX 20H否则为MOVBX 0H 逻辑运算符AND OR NOT XOR例如 ANDAL 86HAND0FHAND是指令 AND逻辑运算符 86HAND0FH 06H汇编后的指令是 ANDAL 06H 与逻辑运算指令不同 CPU不执行任何操作 汇编时运算 在目标程序中只是一个常数 2 1符号指令中的表达式 属性运算符 定义类型算符PTR格式 类型PTR表达式类型BYTEWORDDWORD 例如 MOVBYTEPTR DI 12H 将 DI 定义为字节类型 MOV DI 12H 非法指令INCWORDPTR BX 字加1INCBYTEPTR BX 字节加1 当 BX 1FFH时结果 不相同INC BX 非法指令BUFWDW1234H BUF为字类型 FIRST BYTEEQUBYTEPTRBUFW 建立一个新的存储器操作数 但不分配新的内存单元MOVAH FIRST BYTE MOVAH BYTEPTRBUFW 将BUFW临时指定为字节类型 传送给AH AH 34H 等价 2 1符号指令中的表达式 指示性语句 伪指令 4 1汇编语言的基本语法 符号定义伪指令 EQU 格式 符号名EQU 表达式例如 COUNTEQU20ABC 21H 4MOVAL COUNT 将20送ALMOVAL ABC 将25H送AL BEQU10 非法定义 如 A 3BEQU5 定义B 5A 10 重定义A为10 EQU不能重复定义 可任意重复定义 指示性语句 伪指令 4 1汇编语言的基本语法 指示性语句 伪指令 4 1汇编语言的基本语法 段定义伪指令的参数格式 段名SEGMENT 定位类型 组合方式 类别名 X 定位方式 段的起始地址边界PAGE 指定起始地址的低8位是0 称页边界XXXXXXXXXXXX00000000BPARA 指定起始地址的低4位是0 称段边界XXXXXXXXXXXXXXXX0000BWORD 指定起始地址的低2位是0 称字边界XXXXXXXXXXXXXXXXXX00BBYTE 指定起始地址为任意值 XXXXXXXXXXXXXXXXXXXXBPARA为缺省方式 指示性语句 伪指令 4 1汇编语言的基本语法 段定义伪指令的参数格式 段名SEGMENT 定位类型 组合方式 类别名 X 组合方式 连接程序时设定本段与其它段的连接方式 模块化程序设计 PUBLIC 同名段依次连接起来 形成一个连续的段 COMMON 同名段共用同一段起始地址 相互重叠段的长度 为最长的段的长度 AT表达式 定位在表达式所指定的段地址 代码段例外 STACK 同名段构成一个连续的堆栈段 自动初始化SP MEMORY 表示本段定位在所有段的地址之上 高地址处 空缺 NONE 不与任何段相连接 各段有独立段基址 缺省方式 指示性语句 伪指令 4 1汇编语言的基本语法 段定义伪指令的参数格式 段名SEGMENT 定位类型 组合方式 类别名 X 类别名 用单引号括起来的字符串 类别名相同的段按先后顺序存放在一连续的存贮区中 形成统一的物理段 模块化程序设计 定位伪指令格式 ORG地址表达式指定程序或数据在内存单元的起始偏移地址 例如 ORG100HMOVAX DATA 指令偏移地址为100H MOVAX BX 其后的指令依次存放 指示性语句 伪指令 4 1汇编语言的基本语法 段寄存器说明伪指令格式 ASSUME段寄存器 段名1 段寄存器 段名2 在代码段 告诉汇编程序CS DS ES SS应具有的符号段基址 但是段寄存器 CS除外 还必须用传送指令赋值 一般紧跟在SEGMENT语句之后 例如 CODESEGMENTPARAASSUMECS CODE DS DATAMOVAX DATAMOVDS AX 传送指令赋值 CODEENDSDATASEGMENT DATAENDS 指示性语句 伪指令 4 1汇编语言的基本语法 过程 子程序 定义伪指令格式 过程名PROCNEAR FAR 过程名ENDP过程名 过程的起始地址 如子程序定义 类型 NEAR近过程 主 子同段 FAR远过程 主 子在两个不同的代码段 过程应由RET指令返回与远近无关 宏汇编语言的基本格式 4 1汇编语言的基本语法 START MOVAX DATAMOVDS AXMOVAX EXDMOVES AXMOVAX STACK1MOVSS AX DATASEGMENT DATAENDS EXDSEGMENT EXDENDS STACK1SEGMENT STACK1ENDS CODESEGMENT ASSUMECS CODE DS DATAASSUMEES EXD SS STACK1 MOVAH 4CHINT21HCODEENDSENDSTART 由几个段构成 一般有数据段 代码段 堆栈段或附加数据段组成 至少要有一代码段 代码段第一条指令必须有汇编起始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零星维修协议书范文
- 云南省畹町市2025年上半年事业单位公开遴选试题含答案分析
- 河北省宽城满族自治县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版汽车维修企业安全教育培训合同
- 2025爆破工程爆破设计与施工合同
- 2025年新春商铺转租合同范本及注意事项
- 2025年度电力施工环境保护合同范本
- 2025版智能投影仪采购与教育培训服务合同
- 2025版商铺认筹协议书(城市更新)
- 2025版水电设施维修保养劳务合同服务标准
- 物资部档案管理制度
- 2025-2030中国烟花爆竹市场竞争动态分析及前景销售格局研究报告
- 2025年普通高等学校招生全国统一考试数学试题(全国一卷)(有解析)
- 比亚迪公司薪酬管理制度
- 公司监控视频管理制度
- 交通事故护工合同范本
- T/CECS 10103-2020用于水泥和混凝土中的铅锌、铁尾矿微粉
- 消防接警考试题及答案
- 2024年高级消防员技能鉴定考前必刷必练题库500题(含真题、必会题)
- 非法宗教班会课件
- 《智能客服运营管理》课件
评论
0/150
提交评论