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

向右看齐 2022-07-24 08:27 339阅读 0赞
  1. X86汇编杂记1
  2. x86 基础知识
  3. 1.%eax %ebx %ecx %edi %esi 通用寄存器
  4. 2.%ebp %esp %eip %eflags 几个专有寄存器
  5. $:使用立即寻址方式
  6. 我们对比8086寄存器可以发现,其X86 还是有很多8086的影子的。
  7. int $0x80 中断,请求终止程序。
  8. 注释风格:
  9. x86 : 以“#”开头
  10. 8086 :以“;”开头
  11. 一个小例子来自《深入理解程序设计使用Linux汇编语言》
  12. .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 无条件跳转 。该指令无需跟在比较指令后

发表评论

表情:
评论列表 (有 0 条评论,339人围观)

还没有评论,来说两句吧...

相关阅读

    相关 X86汇编简要说明

    一、抽象 在经典的计算机体系结构中,往往将计算机系统表示为一些抽象的层次,来隐藏其实现细节。 ![20150104215854639][] 机器码: 机器码由操作码

    相关 80x86汇编6-jCC

    CMP指令: 指令格式:CMP R/M,R/M/IMM 该指令是比较两个操作数,实际上它相对于SUB指令,但是相减的结构并不保存到第一个操作数中,只是根据相减的结果来改