AT&T 风格汇编语言(chapter2 查找最大值)

查找最大值代码:

    .section .data           #数据项                        
data_items:     
    .long 3,67,34,222,45,75,54,34,44,34,33,22,11,66,0
    .section .text
    .globl _start
_start:   
    movl    $0, %edi    #将0引入索引寄存器
    movl    data_items(,%edi,4),    %eax  #加载数据的第一个字节
    movl    %eax,   %ebx    #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
  1. .section .data
    伪指令,表示数据区的开始
    几种数据类型:
  • .byte 一个字节,数字范围是0~255
  • .int 两个字节,数字范围是 0~65535
  • .long 四个字节 数字范围为 0~2^32
  • .ascii 用于将字符输入内存
  1. .section .text
    伪指令,表示指令的开始
  • .globl 代表之后的符号将会被代替
  • movl data_items(,%edi,4), %eax :该指令的通用格式为 movl 起始地址(,%索引寄存器,字长),表示从数据区的某一个位置取出数字存到 %eax,
  • cmpl $0, %eax 比较两个值。这里是比较 0 和存储在 %eax 中的数字,判断是否到达行尾
  • je loop_exit : jump when equal 上一语句等于时候跳
  • incl %edi增加1 , movl data_items(,%edi,4), %eax 访问的就是下一个字长的数字了

总结:

  • 常量数据:最后一个元素是 0 的一串数字
  • 变量使用:
    • %edi: 记录数字的索引
    • %eax: 记录当前访问的数字
    • %ebx: 记录目前位置数字的最大值
  • 逻辑流程:
    初始化代码块
    1. 初始化 %edi 为0 指向第一的数字
    2. 索引寻址获得第一个数字
    3. 将第一个数字设置为最大值
    循环代码块
    1. 比较当前数字是否为0,即判断是否到达数组末尾如果是就跳到退出代码块否则继续执行以下流程
    2. 将索引加一,使用索引寻址获取下一个数字
    3. 如果该数字不大于设定的最大值就跳到下一次循环,否则将最大值更新
    4. 再次开始新的循环
    退出代码块
    1. 系统调用exit退出
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,879评论 8 114
  • 这个程序的核心目的是:试验大地址的读写,在保护模式下面寻址空间可达4GB,实模式下只能寻址1MB。(why:为什么...
    王侦阅读 4,390评论 0 0
  • 寄存器 用于解决处理器与内存之前的数据存储效率问题存在的。IA-32平台寄存器核心组有下面几种. 通用寄存器 8个...
    dodomix阅读 5,668评论 0 0
  • 你可以不用打开 这只是我写得第一首情诗 我收到过最温暖的信息 是你说的在一起 我收到过最绝望的信息 是你说的...
    陳雨雨雨雨雨阅读 2,256评论 0 0
  • 渴望一场雪花 冬天的雪花 从内心泻落而下 就让一场雪花 绽开寂寥的心情 一场梦幻的雪花 那是冬天的序言 ’待到悬崖...
    李春雷1965阅读 2,241评论 0 1

友情链接更多精彩内容