- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.1 宏汇编语言的基本语法
7.2 伪指令
7.3 宏指令
7.4 系统功能调用
7.5 汇编程序的功能及汇编过程;7.1 宏汇编语言的基本语法;7.1.2 常量、变量和标号;- 有三个属性:
-- 段地址:即标号所在段的段地址;
-- 偏移量:标号所代表存储单元的段内偏移地址;
-- 类 型:NEAR或FAR:
NEAR—表示标号所在语句与转移指令/
调用指令在同一码段内,跳转时
只需改变IP即可。
FAR—标号所在语句与转移指令/调用
指令不在同一代码段内。
?若没有对类型进行说明,默认为NEAR。
- 标号通常作为转移指令或CALL指令的转移地址。;变量——即内存中的存储单元或数据区。
变量名——是存储单元(数据区)的符号地址或名字。
- 变量也有三个属性:
-- 段地址—变量所在段的段地址
-- 偏移量—变量单元地址与段首地址之间的位移量。
-- 类 型—有BYTE、WORD和DWORD三种。
- 变量在程序中作为存储器操作数被引用。;标号和变量名的使用规则
组成:A-Z(不分大小写), 0-9, ?@ . _ $
不能以数字开头,句号(.)只能作为首字符
长度小于31个字符
不能与保留字(指令助记符、伪指令、预定义符号等)重名
不能重复定义
例如:
正确的:LP1, AGAIN, NEXT, _GO, OK_1
错误的:4M, LOOP, AAA, #HELP, +ONE (P457); 汇编语言的一个实例: hello.asm
data SEGMENT
Hello DB ‘Hello, world!’,0DH,0AH,’$’
data ENDS
prog SEGMENT
ASSUME CS:prog,DS:data
start: MOV AX,data
MOV DS,AX
LEA DX,hello ;取字符串首地址
MOV AH,9
INT 21H ;显示字符串
MOV AH,4CH
INT 21H ;退回DOS
prog ENDS
END start;7.1.3 表达式与运算符(1);- 用于数字表达式:
MOV AX , 4*1024
汇编后的形式为:
MOV AX , 4096
- 用于地址表达式,例:
LEA SI , TAB+3
若TAB的偏移地址为1000H,则汇编后的形式为:
LEA SI , [1003H] ;逻辑运算符只能用于数字表达式中。
例:MOV CL , 36H AND 0FH
经汇编后:MOV CL , 06H
注意,不要把逻辑运算符与逻辑运算指令混淆:
例:AND AX , 3FC0H AND 0FF00H
汇编后源操作数被翻译为:3F00H,所以上述指令与AND AX, 3F00H等价。;- 关系运算的结果是一个逻辑值:真或假
关系为真,结果为全1
关系为假,结果为全0
例:MOV BX , PORT GT 300H
若PORT的值大于300H,则汇编后为:
MOV BX,0FFFFH
否则汇编后为:
MOV BX,0;⑷ 分析运算符(数值回送操作符):
SEG(计算段基址)
OFFSET(计算偏移地址)
TYPE(计算符号类型值)
SIZE(计算符号名分配的字节数)(=TYPE*LENGTH)
LENGTH(计算符号名分配的数);SEG:取变量/标号的段地址
OFFSET:取变量/标号的偏移地址
例:VAR DB 12H
……
MOV BX,OFFSET VAR ;取变量VAR的偏移地址
MOV AX,SEG VAR ;取变量VAR的段地址
注意,以下指令的异同:
MOV BX, OFFSET VAR
LEA BX, VAR
- OFFSET只能取静态的偏移地址;
- LEA指令即可取静态的偏移地址,也可取动态的偏移地址。 ;TYPE 取变量的类型(1,2,4)
LENGTH 取所定义变量的长度
(即变量中元素的个数)
SIZE
您可能关注的文档
最近下载
- EPDM塑胶面层施工方案:.doc VIP
- 肿瘤化疗药物使用指南和规范.pdf VIP
- 分析沥青混凝土路面病害产生原因及处理的方法.doc VIP
- 2024华医网答案;继续教育答案;复合杂交手术治疗主动脉夹层疾病新理念;题库答案.docx VIP
- 省级优秀课件人音版小学音乐二年级上册《大海》.pptx
- 遇到更好的自己(新员工).pdf
- 超星尔雅学习通《劳动通论》章节测试答案.pdf VIP
- 思想道德与法治2021版第六章第四节.pptx
- 2024年外研版八年级上册英语Module 9 Unit3 Language in use.pptx VIP
- 2024年华医网继续教育肠内肠外营养临床规范化应用答案.docx VIP
文档评论(0)