随笔分类 - 汇编
摘要:AT&T汇编1.Register Reference引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。80386有如下寄存器:[1] 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位;)[2] 6个段寄存器:%cs(cod
阅读全文
摘要:相关资料:http://www.doc88.com/p-87382059871.htmlhttp://www.360doc.com/content/12/1129/17/1317564_251014348.shtml寄存器通用8个32位奇存器,用于处理数据段6个16位寄存器,用于处理内存访问指令指针单一的32位寄存器,指向要执行的下一条指令码浮点数据8个80位寄存器,指向要执行的下一条指令控制5个32位寄存器,用于确定处理器的操作模式调试8个32位寄存器,用于在调试处理时包含信息通用寄存器EAX用于操作数和结果数据的累加器EBX指向数据内存段中的数据指针ECX字符串和循环操作的计数器EDXI/
阅读全文
摘要:http://blog.csdn.net/small_fish__/article/details/7176403
阅读全文
摘要:as命令是gas软件,我们知道在linux下,可以调试,链接,生成可执行文件的方式有多种。可以编译成链接文件的类似dos软件的有nasm(intel汇编指令),类似dos的masm,还有就是gnu的开源的gas,当然也可以用gcc,gdb来调试汇编。相对来说在linux下你有更多的选择,ld命令是用来把链接文件生成可执行文件。下面我们就以一个简单的例子介绍使用这些工具。这里写的汇编代码是at&t汇编格式,我用intel汇编来解释它(也就是会给出intel汇编的书写方式)#cpuid.s 简单的例子 获的cpu相关的信息 intel用“;”来注释.section .data data s
阅读全文
摘要:1.物理地址的范围是多少(内存大小),取决于处理器引脚上有多少条地址线,也取决于这些地址线上实际连接了多大的内存芯片2.直接寻址的地址要写在括号“[”,“]”内
阅读全文
摘要:IO映射 引言:从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口„„一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接„„于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器„„对于CPU而言,如果它要发数据到某个设备,其实是发到对应的接口,接口电路里有多个寄存器(也称为端口),访问设备实际上是访问相关的端口,所有的信息会由接口转给它的设备。那么CPU会准备数据到数据总线,但是诸多接口,该发给谁呢?这时就须要为各接口分配一个地址,然后把地址放在地址总线上,需要的控
阅读全文
摘要:32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8
阅读全文

浙公网安备 33010602011771号