微机原理3:汇编语言程序设计.pptVIP

  1. 1、本文档共68页,可阅读全部内容。
  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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第3章:宏与子程序的比较 仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序,执行速度没有改变 通过形参、实参结合实现参数传递,简捷直观、灵活多变 还是目标程序级的简化:子程序调用在执行时由CALL指令转向、RET指令返回;形成的目标代码较短,执行速度减慢 需要利用寄存器、存储单元或堆栈等传递参数 比较 宏 子程序 第3章:宏与子程序的比较结论 宏与子程序具有各自的特点,程序员应该根据具体问题选择使用那种方法 通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子程序 比较 结论 宏 子程序 第3章:教学要求 掌握简化段定义源程序格式 掌握常量表达、变量定义及应用、变量和标号的属性及操作符 掌握汇编语言源程序的编辑、汇编、连接和调试的开发方法 掌握基本伪指令和操作符: EQU/=;+-*/;DB/DW/DD、?/DUP;ORG/$、OFFSET/SEG/PTR;.MODEL/.STACK/.DATA/.CODE/END;PROC/ENDP 第3章:教学要求(续) 掌握基本的顺序、分支、循环和子程序设计方法 熟悉常见程序设计问题: 多精度运算,查表(查代码、特定值等)、ASCII和BCD代码转换;数据范围判断(0~9、A~Z、a~z)、字母大小写转换;字符串传送、比较等操作、求最小最大值、数据求和、统计字符个数 表3.1 存储模式 存储模式 特 点 TINY(微型模式) COM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持) SMALL (小型模式) 小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KB COMPACT (紧凑模式) 代码少、数据多的程序,只有一个代码段,但有多个数据段 MEDIUM (中型模式) 代码多、数据少的程序,可有多个代码段,只有一个数据段 LARGE (大型模式) 大应用程序,可有多个代码段和多个数据段(静态数据小于64KB) HUGE (巨型模式) 更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制) FLAT (平展模式) 32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境 作业: 1、看书 没有讲的例题看懂并且调试。 习题: 3.16 3.17 3.22 3.30 * * * * * * * * * * * * * * * * * * * * * * * * * * 第3章: 3.2.2 变量 1. 变量的定义 变量定义的汇编语言格式为: 变量名 伪指令 初值表 变量名为用户自定义标识符,表示初值表首元素的逻辑地址。 初值表是用逗号分隔的参数,主要由常量、数值表达式或“?”组成。其中“?”表示未赋初值 多个存储单元如果初值相同,可以用复制操作符DUP进行定义: 重复次数 DUP(重复参数) 参见P67 变量定义伪指令有DB、DW、DD等(表3-4) ;数据段 X db a,5 db 2 dup(100),? Y db ABC 第3章:字节变量的应用 mov al,X ;此处X表示它的第1个数据,故AL←a dec X+1 ;对X为始的第2个数据减1,故成为4 mov Y,al ;现在Y这个字符串成为 aBC 字变量定义实例 ;数据段 count dw 8000h,?,AB maxint equ 64h number dw maxint array dw maxint dup(0) 第3章:3. 变量的定位 ORG 参数 将当前偏移地址指针指向参数表达的偏移地址。例如: ORG 100h ;从100H处安排数据或程序 ORG $+10 ;偏移地址加10,即跳过10个字节空间 符号“$”表示当前偏移地址值 P69 arr_size=$-array 第3章:3.2.3 名字和标号的属性 1. 地址 2. 类型 地址操作符取得名字或标号的段地址和偏移地址 [ ] 将括起的表达式作为存储器地址指针 $ 当前偏移地址 : 段前缀,采用指定的段地址寄存器 OFFSET 名字/标号 返回名字或标号的偏移地址 SEG 名字/标号 返回名字或标号的段地址 第3章:2. 类型操作符 类型操作符对名字或标号的类型属性进行设置 类型名 PTR 名字/标号 mov al, byte ptr [2000h] mov ax, word ptr [2000h] 对变量: LENGTHOF操作符获知某变量名指向元素个数 SIZEOF操作符获知变量共占用多少字节空

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档