My微机原理82C与汇编.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理及应用 第8.2讲 ASM命名规则 汇编程序变量/标号命名规则 字符来源: 字母A~Z,a~z 数字0~9 专用字符? . @ _ $ 除数字外,所有字符都可以放在名称的第一个位置,如果用到.则必须是第一个字符,必须至少包含一个字母 可以用多个字符说明名字,但只有前31个字符能被汇编程序所识别。 不能为关键词 C 命名规则 C 标号命名规则 字符来源: 字母A~Z,a~z 数字0~9 专用字符 _ 数字外不能放在名称的第一个位置,必须至少包含一个字母 ansi C对外部名称只识别前6个字符(外部名称指链接过程中涉及的标识符,包括文件间共享的函数名和全局变量名) ansi C对内部名称只识别前31个字符(内部名称指出现在定义该标识符的文件中的那些标识符) 当然新的编译器对这些有新的规定,需查相关手册. Hello.c /* HELLO.C -- Hello, world */ #include stdio.h main() { printf(Hello, world\n); } TC目录下有个TCC程序,可以将.c的程序转换为.asm的程序,如: tcc -B -IInclude hello.c 或 tcc -S -IInclude hello.c 其中-S表示生成hello.asm,而-B参数是转换为汇编后再调用TASM进一步进行编译,-I参数是指定Include目录。 这个命令将生成.asm文件,但是这个汇编文件编译后的.obj文件需要和相应的c0?.obj以及.lib链接才能产生.exe。 Hello.asm ifndef ??version ?debug macro endm endif ?debug S hello.c _TEXT segment byte public CODE DGROUP group _DATA,_BSS assume cs:_TEXT,ds:DGROUP,ss:DGROUP _TEXT ends _DATA segment word public DATA d@ label byte d@w label word _DATA ends _BSS segment word public BSS b@ label byte b@w label word ?debug C E900501D110768656C6C6F2E63 ?debug C E900501D110F696E636C7564655C737464696F2E68 ?debug C E900501D1110696E636C7564655C7374646172672E68 _BSS ends _TEXT segment byte public CODE ; ?debug L 5 _main proc near ; ?debug L 7 mov ax,offset DGROUP:s@ push ax call near ptr _printf pop cx @1: ; ?debug L 8 ret _main endp _TEXT ends ?debug C E9 _DATA segment word public DATA s@ label byte db Hello, world,0 _DATA ends _TEXT segment byte public CODE extrn _printf:near _TEXT ends public _main end C versus Assembly Language C is called a “portable assembly language” (可移植的汇编语言) 允许对比特和字节的低级操作 允许通过指针直接访问物理存储空间 与汇编相比的优势 语言简洁、紧凑、灵活 程序设计结构化、模块化 可移植性好 C versus Assembly Language 学习汇编语言的好处: 对时间要求严格的代码,使用汇编编写可以改善性能 可以很好地理解处理器如何工作 写操作系统或者在操作系统移植时,有一些代码必须用汇编语言编写。 微机系统软件实现 1.全汇编方案,这种方案只适用于比较小的程序。 2.全高级语言,这种方案的优点是结构性, 可维护性很好, 但代价是效率很低, 主要是C语言编译器的效率太低。 3.混合语言编程,主程序全部用C语言编写, 这样结构性很好; 需要提高速度的地方, 用汇编写, 来调用. 这是目前主要使用的编程方式。 C语言程序与汇编语言程序的连接 接口约定: (1)有关名字的约定。 -标识符大小写;下划线_;标识符的字符个数;标识符的

文档评论(0)

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

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

1亿VIP精品文档

相关文档