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

X86汇编杂记1

x86 基础知识

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

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

 

$:使用立即寻址方式

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

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

注释风格:

x86 : 以“#”开头

8086 :以“;”开头

一个小例子来自《深入理解程序设计使用Linux汇编语言》
.section .data data_items: .long 3,67,34,222,45,75,54,34,44,33,22,11,66,0 .section .text .globl _start _start: movl $0,%edi movl data_items(,%edi,4), %eax movl %eax ,%ebx start_loop: cmpl $0,%eax je loop_exit incl %edi movl data_items(,%edi,4) ,%eax cmpl %ebx,%eax jle start_loop movl %eax,%ebx jmp start_loop loop_exit: movl $1,%eax int $0x80 

一个简单的寻找最大数的小例子。 我们从这个例子开始小结下基础知识 程序段: 在8086 汇编中,使用的是segment 段 的概念,X86使用section 节 的概念 这里有数据段,文本段。所以我们在X86汇编中“."是一种标记,标记我们的段标识。 数据类型:.byte 每个存储位置占1个字节。数字范围0~255 .int 每个整型数字占用两个存储位置 即2字节 .long 长整型占用4个存储位置 即4字节 .ascii 存储字符 一些比较指令: je  若值相等则跳转 jg  若第二个值大与第一个值跳转 jge 若第二个值大与等与第一个值则跳转 jl   若第二个值小于第一个值则跳转 jle  若第二个值小于等与第一个值则跳转 jmp 无条件跳转 。该指令无需跟在比较指令后  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值