微机原理及接口技术-七章-汇编语言及汇编程序.pptVIP

微机原理及接口技术-七章-汇编语言及汇编程序.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

kfcel5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档