美文网首页
汇编at&t

汇编at&t

作者: 不存在的里皮 | 来源:发表于2021-02-20 02:37 被阅读0次

比较得到数组最大数

写一个比较得到最大数的汇编, 注意:

  • long是4字节
  • movl, mov运用在不同范围的数字, mov会搬运64位数字(超过了long的长度), movl会搬运32位(刚好是long的长度)
  • rdx, edx是同一寄存器上的不同范围, rdx是64位, edx是32位
  • 立即数寻址要加$

真是耗费了我好些经历, 写了一整天, 每次都报错segment fault(其实是因为对数的范围和寻址不敏感, 导致访问了非法内存).
为此还学习了一番gdb调试, 真不戳!

.section .data
data_items:
  .long 3, 74, 34, 222, 34, 75, 54, 34, 44, 33, 22, 11, 66
len = . - data_items

.section .text
.globl _start
_start:
  mov $-4, %rdi
  movl data_items(,1), %ebx
start_loop:
  add $4, %rdi
  # 比较是否到最后一个元素
  cmp $len, %rdi
  jae exit_loop
  # 取元素比较大小
  movl data_items(, %rdi), %eax
  cmp %rax, %rbx
  jle assign_max
  jmp start_loop
assign_max:
  mov %rax, %rbx
  jmp start_loop
exit_loop:
  mov $1, %rax
  int $0x80
rasak@515jzl:~/Programs$ as -o demo.o demo.s
rasak@515jzl:~/Programs$ ld -d demo.o -o demo
rasak@515jzl:~/Programs$ ./demo
rasak@515jzl:~/Programs$ echo $?
222

各类寄存器用途

耶鲁x86汇编教程, 很不错的教程, 很清晰.

文中提到, 大部分寄存器都没有特殊用途, 除了rbprsp是用作栈的(64位系统). rip指向当前执行的指令.

我们以一个简单例子说明:

.section .text
.globl _start
_start:
  push $3
  push $5
  pop %rax
  pop %rbx

gdb调试一下, 先运行两次nexti, 也就是执行两次push, 然后查看寄存器情况:
rip指向当前的指令, rsp指向的位置保存了5. rbp为0(为什么呢?)

gdb调试

相关文章

  • 内联汇编

    AT&T汇编语法 GCC只支持AT&T汇编语法内嵌在C语言中。 Intel和AT&T汇编风格对比: AT&T寻址 ...

  • 6.828 操作系统 lab1: 阅读boot.S

    补充知识 补充1. AT&T汇编 由于内核代码采用的gcc编译器使用AT&T的汇编格式,首先补充下关于AT&T汇编...

  • AT&T Assembly Syntax [ AT&T 汇编语法

    AT&T Assembly Syntax [ AT&T 汇编语法 ] vivek, Mon, 2003-09-01...

  • AT&T汇编-函数实例

    AT&T 基于x86架构处理器汇编指令一般有2种格式:Intel汇编和AT&T汇编,通过对8086汇编的学习包括对...

  • 汇编at&t

    比较得到数组最大数 写一个比较得到最大数的汇编, 注意: long是4字节 movl, mov运用在不同范围的数字...

  • lab1 二进制炸弹

    汇编与反汇编 汇编与反汇编的区别 phase_1 比较字符串是否相同 二进制炸弹 常见汇编指令详解 AT&T 格式...

  • 寄存器的一点小知识

    汇编语言的种类 Intel:WindowsAT&T:Unix AT&T汇编主要用作iOS模拟器ARM汇编用于iOS...

  • AT&T汇编(2)反汇编

    1、常见代码反汇编 sizeof a++ + a++ + a++ if-else for switch和if效率 ...

  • AT&T汇编(1)基本概念

    1、AT&T汇编 vs Intel汇编 基于x86架构的处理器所使用的汇编指令一般有2种格式a) Intel汇编D...

  • 十七.AT&T汇编

    之前将的都是8086汇编,现在聊一聊AT&T汇编,基本都是相同的汇编就是使用寄存器存储数据和操作内存; ios基本...

网友评论

      本文标题:汇编at&t

      本文链接:https://www.haomeiwen.com/subject/ltttfltx.html