- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
宏汇编语言程序设计 本章内容 汇编语言程序格式 MASM中的表达式 伪指令语句 DOS系统功能调用 BIOS中断调用 概述 汇编语言 利用指令的助记符、符号地址、标号来编写的语句 汇编语言源原程序 用汇编语言编写的程序 一个例子程序 Page 124,例4-1 程序由段的描述组成 指令语句/伪指令语句构成 §4-1 汇编语言程序格式 指令性语句 伪指令语句 数据项 汇编语言程序格式——指令语句 对象 CPU 与机器码相对应,要求CPU执行的操作 格式 [标号:] 指令助记符 [[操作数],操作数][ ;注释] 汇编语言程序格式——伪指令语句 对象 汇编程序 通知编译器,如何生成目标码。本身不产生机器目标吗 格式 [名字] 伪指令助记符 [[操作数],操作数...][ ;注释] 汇编语言程序格式——数据项 常数 确定的数据,有固定值,没有属性 变量 存放在存储单元中的值 在程序中以变量名的形式出现,代表存放数据的存储单元的符号地址 三属性 段属性/段内偏移量属性/类型属性 汇编语言程序格式——数据项 标号 可执行指令语句的首字节地址的符号表示 被JMP/CALL/LOOP等所使用 三属性 段属性/段内偏移量属性/类型(距离)属性 §4-2 MASM中的表达式 指令操作数形式 常数、变量、标号、表达式、关键字 表达式的构成 运算符 运算对象:常数、变量、标号 结果为常数、地址 在汇编时求值 六大类运算 表达式——算术运算 加、减、乘、除、模、左移、右移 运算对象、结果 整数 禁忌 地址相加 无法求值 表达式——算术运算 例: abc equ 35h var1 db 10h var2 db 0ah mov ax,abc shr 4 mov ax,abc shl 4 mov cx,var2 - var1 mov bx,abc - 5 表达式——逻辑运算 与、或、非、异或——按位运算 运算对象、结果 常数 禁忌 变量名 表达式——逻辑运算 例: abc = 10h abc1 equ 2ah v1 db 3ah mov ax,abc and 0fh mov ax,abc or abc1 mov ax,v1 and abc 表达式——关系运算 EQ、NE、LT、GT、LE、GE 对象 数据 同段内的偏移地址 结果 真:全1 假:全0 表达式——关系运算 例: abc equ 10h mov ax,abc eq 10 mov ax,abc lt 10 mov ax,abc gt 10 表达式——数值返回运算 Offset、seg、type、length、size 对象 变量、标号 结果 值 表达式——数值返回运算 Offset 变量、标号的段内偏移地址 与 LEA 的差异??? Seg 变量、标号的段地址 表达式——数值返回运算 Type 变量、标号的类型属性 Length 外层DUP的单元个数 无DUP则返回1 表达式——数值返回运算 Size size = length * type 表达式——属性修改运算 Ptr 临时改变变量、标号的类型属性 mov word ptr [bx],0 jmp far ptr sub1 This 给变量、标号赋予类型 first equ this byte table dw 2000h 表达式——属性修改运算 High/Low 字节分离 常数、常数表达式 mov al,low (offset da1) §4-3 伪指令语句 不生成机器码,帮助解释、生成指令的机器码 变量定义、存储器分配、段定义…… 伪指令语句——数据定义 定义/分配变量的存储器单元,并初始化存储器单元 格式 变量名 助记符 操作数,操作数… ;注释 伪指令语句——数据定义 DUP的使用 定义重复数据 例 abc db 10 dup(0) ab db 100 dup(1,2,34 dup(0)) 伪指令语句——数据定义 字符串的定义 DB/DW/DD? DB按正常的顺序排列 DW/DD只能以两个一组作定义,顺序不同 伪指令语句——数据定义 符号地址的使用 DW? DD? DB?? 伪指令语句——赋值 不分配存储器空间 常数 EQU 不可重复赋值 = 可重复赋值 伪指令语句——段定义 段名 segment 定位类型 组合类型 ‘分类名’ …… 段名 ends 伪指令语句——段定义 段名 segment 定位类型 组合类型 ‘分类名’ …… 段名 ends 伪指令语句——段定义 段名 segment 定位类型 组合类型 ‘分类名’ …… 段名 ends 伪指令语句——段定义 段名 segment 定位类型 组合类型 ‘分类名’ …… 段名 ends 伪指令语句——数据定义 dseg
文档评论(0)