C指针原理(5)-AT&T汇编
2018-11-24 09:20
267 查看
.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的参数
相关文章推荐
- C指针原理(9)-C内嵌汇编
- C指针原理(85)-helloworld的C程序汇编剖析(1)
- C指针原理(8)-C内嵌汇编
- C指针原理(27)-汇编分析C指针机制
- C指针原理(86)-helloworld的C程序汇编剖析(2)
- 数组指针 原理以及三个经典C程序的解惑 C知识回顾第二天
- C指针原理(11)
- __asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法
- 汇编语言理解指针(指针就是汇编的间接寻址,其实就是一个简单方便的运算指令,计算完毕直接就赋值,不是从内存中去取值后赋值)
- c语言==野指针形成原理、造成的危害及避免方法(22)
- X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
- 编译器是如何用汇编语言实现C++的虚函数表和隐式传递this指针(二)
- AT&T汇编——写在开始之前
- AT&T汇编语言——简单实例及工具演示
- C指针原理(39)-编译基本原理-语法树及其实现
- AT&T与Intel格式的汇编语法
- gcc内嵌的汇编at&a汇编(初览)
- AT&T汇编格式与Intel汇编格式的比较
- C指针原理(48)-垃圾回收-内存泄露
- AT&T汇编格式