随笔 - 159, 文章 - 0, 评论 - 14, 阅读 - 25万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  Assembly Language

汇编语言
摘要:内存寻址在指令中可以表示成如下的通用格式: ADDRESS_OR_OFFSET(%BASE_OR_OFFSET,%INDEX,MULTIPLIER)它所表示的地址可以这样计算出来: FINAL ADDRESS = ADDRESS_OR_OFFSET + BASE_OR_OFFSET + MULTIPLIER * INDEX 其中ADDRESS_OR_OFFSET和MULTIPLIER必须是常数,BASE_OR_OFFSET和INDEX必须是寄存器。在有些寻址方式中会省略这4项中的某些项,相当于这些项是0。以下是寻址的几种方式: 直接寻址(Direct Addressing Mode)。... 阅读全文

posted @ 2011-10-18 14:37 bug yang 阅读(656) 评论(0) 推荐(0) 编辑

摘要:简单的汇编例子:.section .data data_items: .long 10,2,4,1,7,3,0.section .text .globl _start_start: movl $0,%edi movl data_items(,%edi,4),%eax movl %eax,%ebx start_loop: cmpl $0,%eax //cmpl相当于比较函数 je exit_loop //如果eax==0,那么跳转到exit_loop je中‘e'的意思为’equal‘ i... 阅读全文

posted @ 2011-10-18 14:30 bug yang 阅读(1169) 评论(0) 推荐(0) 编辑

摘要:一、计算机体系结构基础 eax,ebx,eip为寄存器,有些寄存器保存的数据只能用于某种特定的用途,比如eip寄存器用作程序计数器,叫做特俗寄存器。而另外一些寄存器保存的数据可以用在各种运算和读写内存的指令中,比如eax寄存器,这称为通用寄存器(General-purpose Register)。 程序计数器(PC,Program Counter),保存着CPU取指令的地址,每次CPU读出程序计数器中保存的地址,然后按这个地址去内存中取指令,这时程序计数器保存的地址会自动加上该指令的长度,指向内存中的下一条指令。 指令解码器(Instruction Decoder)。CPU取上来的指... 阅读全文

posted @ 2011-10-17 13:36 bug yang 阅读(233) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示