《AT&T汇编语言(中文版)》.pdf

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《AT&T汇编语言(中文版)》.pdf

AT&T ASM 1 AT&T ASM 开发一个OS ,尽管绝大部分代码只需要用C/C++等高级语言就可以了,但至少和硬件 相关部分的代码需要使用汇编语言,另外,由于启动部分的代码有大小限制,使用精练的汇 编可以缩小目标代码的尺寸。另外,对于某些需要被经常调用的代码,使用汇编可以提高性 能。所以我们必须了解汇编语言,即使你有可能并不喜欢它。 如果你是计算机专业的话,在大学里你应该学习过 Intel 格式的 8086/80386 汇编,这 里就不再讨论。如果我们选择的OS 开发工具是GCC 以及GAS 的话,就必须了解AT&T 汇编语言语法,因为GCC/GAS 只支持这种汇编语法。 本书不会去讨论8086/80386 的汇编编程,这类的书籍很多,你可以参考它们。这里只 会讨论AT&T 的汇编语法,以及GCC 的内嵌汇编语法。 1. Syntax Register Reference ü 引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。 ü 80386 有如下寄存器: ü 8 个32-bit 寄存器 %eax ,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp; ü 8 个16-bit 寄存器,它们事实上是上面8 个32-bit 寄存器的低16 位:%ax,%bx, %cx,%dx,%di,%si,%bp,%sp; ü 8 个8-bit 寄存器:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl。它们事实上 是寄存器%ax,%bx,%cx,%dx 的高8 位和低8 位; ü 6 个段寄存器:%cs(code),%ds(data),%ss(stack), %es,%fs,%gs; ü 3 个控制寄存器:%cr0,%cr2,%cr3; ü 6 个debug 寄存器:%db0,%db1,%db2,%db3,%db6,%db7; ü 2 个测试寄存器:%tr6,%tr7; ü 8 个浮点寄存器栈:%st(0),%st(1),%st(2),%st(3),%st(4),%st(5),%st(6), %st(7)。 2 Developing Your Own Unix-Like OS on IBM PC Operator Sequence 操作数排列是从源 (左)到目的 (右),如“movl %eax(源), %ebx( 目的)” Immediately Operator 使用立即数,要在数前面加符号$, 如“movl $0x04, %ebx” 或者: para = 0x04 movl $para, %ebx 指令执行的结果是将立即数04h 装入寄存器ebx 。 Symbol Constant 符号常数直接引用 如 value: .long 0x12a3f2de movl value , %ebx 指令执行的结果是将常数0x12a3f2de 装入寄存器ebx 。 引用符号地址在符号前加符号$, 如“movl $value, % ebx”则是将符号value 的地址装入 寄存器ebx 。 Length of Operator 操作数的长度用加在指令后的符号表示 b(byte, 8-bit), w(word, 16-bits), l(long, 32-bits) ,如“movb %al, %bl”,“movw %ax, %bx”,“movl %eax, %ebx ”。 如果没有指定操作数长度的话,编译器将按照目标操作数的长度来设置。比如指令“mov %ax, %bx”,由于目标操作数bx 的长度为word ,那么编译器将把此指令等同于“movw %ax, %bx”。同样道理,指令“mov $4, %ebx”等同于指令“movl $4, %ebx”,“push %al”等同于 “pushb %al”。对于没

文档评论(0)

ghfa + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档