汇编语言学习三

   从这篇文章开始,将从我自己理解讲解汇编语言以及简单的系统知识。希望对大家有所帮助,由于本人学识有限,不对的地方请多原谅。
   首先说计算的原始模型说起,计算机最初可以理解为一个运算器在纸条上按照一定规则和前面的点的内容产生下一步所打得内容。例如:有一个打孔机,它有一个规则,当前面为

01    打印一个1        
10   打印一个0       
11   感应打孔形状的针头跳转10个位置
001   其他
。。 
现代计算机由于有运算器和很多的寄存器,原理要比这个复杂得多,不过基础原理简单可以这样理解。
从80x86,其内部有运算器和寄存器
寄存器  

Name

Length (bits)

Use/comments

EAX

32

accumulator, general use;

  

low-order-word AX, divided into bytes AH and AL

EBX

32

general use;

  

low-order-word BX, divided into bytes BH and BL

ECX

32

general use;

  

low-order-word CX, divided into bytes CH and CL

EDX

32

general use;

  

low-order-word DX, divided into bytes DH and DL

ESI

32

source index; source address in string moves, array index

EDI

32

destination index; address of destination, array index

ESP

32

stack pointer; address of top of stack

EBP

32

base pointer; address of reference point in the stack

CS

16

holds selector for code segment

DS

16

holds selector for data segment

ES

16

holds selector for extra segment

SS

16

holds selector for stack segment

FS

16

holds selector for additional segment

GS

16

holds selector for additional segment

EIP

32

instruction pointer; address of next instruction to be

  

fetched

EFLAGS

32

collection of flags, or status bits



在名字中 E的意思为extend 扩展的意思,如AX为16位,其扩展EAX为32位。
其中EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP。
简单说明,EAX通常被用于一些计算值得存储和保存返回值,经常可以看到调用一个函数后,立刻使用EAX的值,因为一般习惯上都会把返回值放入EAX中(不知道这点是否后一般C++中返回类型通常小于32位,4字节有关)
ebx为基地址处理器,一般可以看到
push ebx
mov ebx,esp
的语句

ecx 一个特点是作为计数器,各种循环都是把它自动减1,用来确定循环次数
edx 为乘法和除法是前32位 或 保存结果用途等

后面的可以自己查找
同时80x86可以用的寄存器还有
st系列 浮点运算作用
cr系列 一些模式的标志位,指示页地址等等
(下面3个内容看下罗云彬的win32汇编,有介绍)
GDTR 全局描述符表
LDTR 局部描述符表
IDTR 中断描述符表

            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值