当前位置: 首页 > 汇编 > 正文

汇编学习(三) X86汇编基础(一)

X86汇编杂记1

x86 基础知识

1.%eax  %ebx  %ecx  %edi  %esi   通用寄存器

2.%ebp  %esp  %eip  %eflags   几个专有寄存器

 

$:使用立即寻址方式

我们对比8086寄存器可以发现,其X86 还是有很多8086的影子的。

int  $0x80  中断,请求终止程序。

注释风格:

x86 : 以“#”开头

8086 :以“;”开头

一个小例子来自《深入理解程序设计使用Linux汇编语言》

一个简单的寻找最大数的小例子。

我们从这个例子开始小结下基础知识

程序段:

在8086 汇编中,使用的是segment 段 的概念,X86使用section 节 的概念

这里有数据段,文本段。所以我们在X86汇编中“.”是一种标记,标记我们的段标识。

数据类型:.byte 每个存储位置占1个字节。数字范围0~255

.int 每个整型数字占用两个存储位置 即2字节

.long 长整型占用4个存储位置 即4字节

.ascii 存储字符

一些比较指令:

je  若值相等则跳转

jg  若第二个值大与第一个值跳转

jge 若第二个值大与等与第一个值则跳转

jl   若第二个值小于第一个值则跳转

jle  若第二个值小于等与第一个值则跳转

jmp 无条件跳转 。该指令无需跟在比较指令后

 

本文固定链接: http://zmrlinux.com/2016/05/18/%e6%b1%87%e7%bc%96%e5%ad%a6%e4%b9%a0%ef%bc%88%e4%b8%89%ef%bc%89-x86%e6%b1%87%e7%bc%96%e5%9f%ba%e7%a1%80%ef%bc%88%e4%b8%80%ef%bc%89/ | Kernel & Me

该日志由 root 于2016年05月18日发表在 汇编 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 汇编学习(三) X86汇编基础(一) | Kernel & Me