`
deepfuture
  • 浏览: 4400359 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80074
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70040
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103346
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285801
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15012
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67555
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32147
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45987
社区版块
存档分类
最新评论

算法下午茶系列-重温汇编(4)[基址与变址]

 
阅读更多
.section .data
  myvalue:
     .byte 67,68,69,70,0
  mygs:
     .asciz "%c\n"
   
.section .text
.globl main
   main:
    #基地址(偏移地址[必须为寄存器],数据元素变址,数据元素长度[必须为寄存器],)
    #基地址+偏移地址+数据元素变址*数据元素长度
    movl $2,%ecx
    movl myvalue(,%ecx,1),%ebx #将myvalue的变址为2,长度为1的数据值移到ebx中
    push %ebx
    push $mygs    
    call printf
    push $0
    call exit
       
    
    

 这段代码将输出ASCII码为69的字符“E”

 

有2种方式,能以变址和基址结构的方式访问内存

1)基地址(偏移地址[必须为寄存器],数据元素变址,数据元素长度[必须为寄存器],)
2)基地址+偏移地址+数据元素变址*数据元素长度

 

上面代码采用了第1种方式:

movl $2,%ecx
movl myvalue(,%ecx,1),%ebx

 

myvalue这个变量的内容是:67,68,69,70,0
%ecx寄存器的值是数据元素变址,是2,数据元素长度是1

67所在内存地址加上变址2,就是myvalue的以1个字节为单位组成的5个元素中,第3个元素的位置

movl myvalue(,%ecx,1),%ebx 将第3个元素E的ASCII码放在ebx寄存器中,然后入栈,做为printf的参数

 

 

 

 如果转载请注明来源,如有错误之处,请及时指出。

 

分享到:
评论

相关推荐

    计算机系统1-实验报告-LC-3汇编语言求成绩等级

    实验内容涉及16名学生的成绩排序与分类,利用LC-3汇编语言编写程序来实现这一目标。 首先,实验的目标是理解问题,设计并实现LC-3汇编代码,以及熟练运用循环和分支结构。实验背景设定为对16名学生的成绩进行处理,...

    IBM-PC汇编语言程序设计答案

    - **基址变址寻址**:操作数的地址由基址寄存器和变址寄存器的值相加得到。 - **相对基址变址寻址**:类似于基址变址寻址,但偏移量包含在指令中。 #### 指令执行与结果分析 描述中提供了多个指令执行后的AX寄存器...

    ARM指令的寻址方式-基址变址寻址.pdf

    ARM指令集设计的一个关键特性是其多样化的寻址方式,其中基址变址寻址是实现高效内存访问的一种方法。本文将深入探讨基址变址寻址及其在ARM指令中的应用。 基址寻址是通过将一个基址寄存器的值与指令中指定的偏移量...

    汇编语言程序设计课后习题答案

    汇编语言程序设计课后习题答案 本资源是IBM-PC汇编语言程序设计(第二版)课后习题答案,涵盖了汇编语言程序设计的多个方面,包括寄存器、寻址方式、指令执行、物理地址和偏移地址等。 1. 寄存器的使用 - AX、BX...

    IBM-PC汇编语言程序设计实验

    在IT领域,汇编语言是一种低级编程语言,它与计算机硬件紧密相关,直接对应于机器指令。"IBM-PC汇编语言程序设计实验"是一个针对个人计算机(PC)平台,特别是IBM兼容机的汇编语言学习项目。在这个实验中,你将有...

    IBM-PC汇编masm5软件

    MASM(Microsoft Macro Assembler)是微软公司开发的一种汇编器,专为IBM-PC及其兼容机设计,支持80x86系列微处理器的汇编语言编程。这里的"IBM-PC汇编masm5软件"指的是MASM的第5个版本,它在20世纪90年代初发布,是...

    IBM-PC汇编语言程序设计的课件

    4. **寻址模式**:了解各种寻址方式,如立即寻址、直接寻址、间接寻址、基址加偏移寻址、相对寻址等,以及如何在实际编程中灵活运用它们。 5. **程序设计技巧**:学习如何利用汇编语言编写高效的代码,例如使用循环...

    IBM-PC汇编语言程序设计第三章习题详解答案

    IBM-PC汇编语言程序设计第三章习题详解答案详解 本资源为IBM-PC汇编语言程序设计第三章习题详解答案,涵盖了汇编语言程序设计的多个方面,包括寻址方式、寄存器操作、指令执行等。以下是详解每个问题和答案: 1. ...

    IBM-PC 汇编语言课后答案

    同时,不同的地址模式(如直接寻址、寄存器相对寻址、基址加变址寻址)使得程序能够以不同方式访问内存中的数据,增强了代码的灵活性和效率。 ### 6. 实例解析与编程实践 文件中的实例涵盖了汇编语言的各个方面,...

    IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明)

    4. **程序设计基础**:学习如何编写汇编语言程序,包括程序结构、子程序设计、循环与分支结构、输入输出处理等。 5. **内存管理**:了解内存组织结构,如段和偏移的概念,以及如何通过段寄存器和CS、DS、ES、SS等...

    80X86汇编语言电子教案

    ### 80X86汇编语言中的MOV指令与寻址方式详解 #### 一、基础知识概述 在《80X86汇编语言电子教案》中,主要讲解了汇编语言的基础概念以及MOV指令的具体使用方法。MOV指令是汇编语言中最常用的指令之一,用于数据的...

    IBM-PC汇编语言程序设计

    3. **寻址模式**:IBM-PC汇编支持多种寻址方式,如直接寻址、立即寻址、寄存器寻址、间接寻址、基址加变址寻址等。掌握这些寻址模式可以灵活地访问内存中的数据。 4. **程序结构**:了解如何组织和编写汇编程序,...

    汇编语言基础--8086汇编指令[整理].pdf

    8086 CPU支持多种寻址模式,如立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址寻址、变址寻址、基址加变址寻址和相对寻址等。 在对汇编指令进行学习和应用时,理解寄存器、内存单元、栈等概念对于编程至关...

    IBM-PC汇编语言程序设计(第二板)习题答案

    【IBM-PC汇编语言程序设计(第二版)习题答案】主要涵盖了汇编语言的基础概念和指令系统,包括寻址方式、存储器地址计算、数据传输和处理、以及程序控制等方面的知识点。 1. **寻址方式**: - **立即寻址**:操作...

    汇编语言基础--8086汇编指令[定义].pdf

    存储器寻址又分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址和相对基址加变址寻址五种。 8086 指令概述: 8086 指令是计算机科学中的一门基础课程。它是用汇编语言进行程序设计的最基本部分。8086 ...

    IBM-PC汇编语言程序设计课后习题答案

    2. **寻址模式**:理解直接、间接、立即、相对、基址加变址等多种寻址方式,它们是编写高效汇编代码的关键。 3. **寄存器**:熟悉CPU中的通用寄存器(如AX、BX、CX、DX)、段寄存器(CS、DS、ES、SS)、指令指针...

Global site tag (gtag.js) - Google Analytics