微机原理和接口技术-第5章 汇编程序设计_12.pptVIP

微机原理和接口技术-第5章 汇编程序设计_12.ppt

  1. 1、本文档共39页,可阅读全部内容。
  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文档。上传文档
查看更多
第5章 汇编语言程序设计 5.2 伪指令 数据定义伪指令 符号定义伪指令 段定义和段寄存器指定伪指令 过程定义伪指令 结束伪指令 哪些是伪指令? DATA SEGMENT hello db Welcome to the world of assembler!$ DATA ENDS CODE SEGMENT assume cs:CODE, ds:DATA start: mov ax, data mov ds, ax mov dx, offset hello mov ah, 9 int 21h mov ah, 1 int 21h mov ah, 4ch int 21h CODE ENDS END start 5.2.2 数据定义伪指令 用于定义变量,即内存单元或数据区。数据定义伪指令的格式为: 变量名 数据定义伪指令 操作数,操作数,… 常用的数据定义伪指令有如下几种: DB 定义字节 DW 定义字 DD 定义双字 DQ 定义4字 操作数可以是常数、变量或表达式 例2:对于字节定义(DB)操作数可以是字符串,例如 STR DB ‘HELLO’ 汇编后的情况如图: 保留存储单元操作符? 操作数?用来保留存储空间,但不存入数据初值 例: ABC DB 0,1,2,3,4,’OK’,’$’ RSV DW ?,?,?,?,?,?,?,? 复制操作符DUP 重复的数据可以使用复制操作符DUP,如上面RSV亦可写成: RSV DW 8 DUP(?) $ 运算符 —— 地址计数器 作用:保存当前正在汇编的指令地址 例3: ARRAY DW 1,2,$+4,3,4,$+8 例4: TABLE DB 2 DUP(?, 2 DUP(1, 2)) BUFFER DW TABLE, $+3 设TABLE的偏移地址为0080H,则汇编后如下图所示: 修改属性的运算符 格式: 类型说明符 PTR 地址表达式 类型说明符: 地址表达式是内存操作数时: BYTE、WORD、DWORD 地址表达式是语句标号、过程名时: FAR、NEAR 地址表达式:语句标号、过程名、内存操作数。 PTR运算符的功能是在本条指令中临时修改由地址表达式指向的内存单元、语句标号或子程序的属性。 THIS运算符 功能:为同一存储单元取另一别名 用于为同一存储单元的数据定义不同的数据类型。 例: WBUFFER EQU THIS WORD BUFFER DB 20 DUP(?) 这样就给同一片存储单元,取了二个具有不同数据类型的变量名。于是,在指令中,引用不同的变量名,就可使用其不同的数据属性: 如果引用变量名WBUFFER,则是按“字”属性来访问 如果引用变量名BUFFER,则是按“字节”属性来访问 5.2.3 符号定义伪指令 把一个表达式用一个符号表示,以后凡出现该表达式的地方都可用这个符号表示。类似于C语言中的#define。 符号定义伪指令有两种:EQU,= 例:“EQU 和 =” 的例子 FIVE EQU 5 COUNT EQU CX TEN EQU 10 DIST = BYTE PTR[SI+BP] GOTO = JMP … MOV COUNT,TEN ADD DIST, FIVE DIST = WORD PTR[SI+BP+1] ADD DIST, AX GOTO LABEL EQU用途 增加程序可读性、缩短程序书写长度、避免因为某些修改而带来的程序不一致性。 除了以上用途外,经常使用EQU的一个场合是与$配合,得到变量分配的字节数。 例如: MSG DB This is first string. COUNT EQU $-MSG MOV CL, COUNT ; CL=MSG的串长=21 5.2.4 段定义伪指令 汇编语言程序是按段来组织程序和数据的。 与存储器的物理段相对应,汇编语言程序中的段称为逻辑段。汇编连接后被映射到物理段中。 在编写汇编语言源程序时,每条指令和每个变量都必须具备段属性。通常一个程序有若干段,而且每一个段有一个段名。 段定义伪指令是逻辑段的定界语句,源程序中每一个逻辑段都必须用段

文档评论(0)

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

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

1亿VIP精品文档

相关文档