I develop the code with x86 gcc.
The C code:
#include <stdio.h>
void test() {
int i;
int array[3] = {0};
for (i = 0; i < 3; i++)
printf("array[%d] = %d\n", i, array[i]);
}
int main(int argc, const char *argv[]) {
test();
return 0;
}
The assembly code:
.file "init.c"
.section .rodata
.LC0:
.string "array[%d] = %d\n"
.text
.globl test
.type test, @function
test:
pushl %ebp
movl %esp, %ebp
subl $40, %esp
# Code for array initialization
movl $0, -24(%ebp)
movl $0, -20(%ebp)
movl $0, -16(%ebp)
movl $0, -12(%ebp)
jmp .L2
.L3:
movl -12(%ebp), %eax
movl -24(%ebp,%eax,4), %edx
movl $.LC0, %eax
movl %edx, 8(%esp)
movl -12(%ebp), %edx
movl %edx, 4(%esp)
movl %eax, (%esp)
call printf
addl $1, -12(%ebp)
.L2:
cmpl $2, -12(%ebp)
jle .L3
leave
ret
.size test, .-test
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
andl $-16, %esp
call test
movl $0, %eax
movl %ebp, %esp
popl %ebp
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3"
.section .note.GNU-stack,"",@progbits
分享到:
相关推荐
栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶(top)。对栈的基本操作有Push(进栈)和Pop(出栈),前者相当于插入,后者则是删除最后插入的元素。 原文:...
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网通信协议,被广泛应用于自动化领域。EtherCAT从站栈(Slave Stack)是实现EtherCAT通信的核心软件组件,它负责处理来自主站的数据交换...
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网通信协议,被广泛应用于自动化领域。它通过在标准以太网技术上实现高效的数据传输,为自动化设备提供高速、低延迟的通信解决方案。...
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网通信协议,被广泛应用于自动化领域。EtherCAT 从机栈(Slave Stack)是实现EtherCAT通信的核心组件,它负责处理来自主站的数据交换和...
Code Review Stack Exchange
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网通信协议,专为自动化控制设计。在 EtherCAT 网络中,设备分为主站(Master)和从站(Slave)。主站负责协调整个网络的数据交换,而从...
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网通信协议,被广泛应用于自动化领域。在 EtherCAT 系统中,"从站"是指连接到主站的设备,它们通常执行控制系统的具体任务,如数据采集或...
【描述】"stack-code stack-code stack-code stack-code stack-code stack-code"虽然重复,但似乎没有提供具体的信息。在正常情况下,描述会包含对压缩包具体内容的简短说明,比如包含的项目、教程、示例代码或者...
EtherCAT从站协议栈(Slave Stack Code, SSC)是实现EtherCAT技术的关键部分,它允许设备作为EtherCAT网络中的从站节点进行通信。在这个场景中,BECKHOFF作为知名的自动化技术供应商,提供了名为"SSC V5.12 (Tool ...
stack_array.exe
Beckhoff Automation的EtherCAT Slave Stack Code(SSC)是ANSI C中的示例源代码,支持μC和SPI接口。 该代码作为在具有自己的处理器的设备中实现EtherCAT的开发基础。 “对象字典工具”(OD-Tool)已集成到SSC OD...
Beckhoff公司开发从站节点软硬件必备的配置工作和生成驱动用XML文件的工具。
在汇编语言的学习中,"STACK1_SEGMENT_STACK.rar_STACK1 SEGMENT_stack segment stack"这个标题提到了两个关键概念:栈段(Stack Segment)和栈(Stack)。栈在计算机科学中扮演着至关重要的角色,尤其是在汇编语言...
本文档是关于Beckhoff公司EtherCAT Slave Stack Code(ET9300)的《应用说明》,文档版本为1.8,发布日期为2017年11月14日。该文档提供了有关EtherCAT技术的详细信息,包括其专利情况、版权声明、免责声明以及文档...
EtherCat Slave Code TOOL(SSC) 5.12版本,最新版, 实测可用! 实测可用! 实测可用! 实测可用!
"应用笔记 ET9300 (EtherCAT Slave 栈代码)" 应用笔记 ET9300 是一份关于 EtherCAT Slave 栈代码的应用笔记,由 Beckhoff Automation GmbH 发布。该文档涵盖了 EtherCAT Slave 栈代码的实现细节,包括硬件访问、...
顺序栈需要实现各项业务功能:创建栈、销毁栈、判断栈是否为空、判断栈是否为满、入栈、出栈、查看栈顶元素。
java java_leetcode题解之Implement Stack Using Array.java