`

assembly - hello world

 
阅读更多

the program find max number from a list of numbers, using assembly language on x86 architecture,

 

code:

    max_num2.s:

 

# find max number in a list of numbers, loop reverse,
# and don't need the register that record total_count,
# 
# registers:
#	%eax	store each number to compare
#	%ebx	the max number
#	%edi	index of number during comparation

.section .data
num_items:
	.long 3,67,34,222,45,75,54,34,44,33,22,11,66
num_count:
	.long 13

.section .text
.globl _start

_start:
movl num_items, %ebx
movl num_count, %edi
decl %edi

loop:
cmp $0, %edi			# detect whether reach end
jl exit
movl num_items(,%edi,4), %eax	# read next number
decl %edi			# decrease index by 1
cmp %eax, %ebx
jge loop
movl %eax, %ebx
jmp loop

exit:
movl $1, %eax
int $0x80

 

compile:

    as max_num2.s -o a.o

    ld a.o -o a.out

 

run:

    ./a.out

 

get result: (the result is stored in %ebx, then call exit syscall, which read status code from this register)

    echo $?

 

分享到:
评论

相关推荐

    osgi-blueprint-helloworld:一个使用OSGI蓝图容器规范的非常简单的HelloWorld示例

    osgi-blueprint-helloworld-assembly Apache Karaf功能 如何建造 它使用Maven框架。 构建项目的先决条件: Maven,版本3+ Java JDK 1.8 建立它 这是一个maven项目,要使用以下命令进行构建 mvn clean install ...

    masm.rar_Assembly hello wor_dos hello world_hello world D_masm_

    标题中的"masm.rar_Assembly hello wor_dos hello world_hello world D_masm_"揭示了我们今天要讨论的主题——使用MASM(Microsoft Assembler)在DOS环境下编写并编译一个简单的“Hello, World!”程序。这个压缩包...

    汇编语言实现输出helloworld

    根据给定的文件信息,我们可以总结出以下关于“汇编语言实现输出HelloWorld”的相关知识点: ### 汇编语言简介 汇编语言是一种低级编程语言,它为每种类型的计算机提供了一对一的机器指令映射。汇编语言程序通常由...

    ksoap2-android-assembly-3.5.0-jar-with-dependencie.jar

    final String METHOD_NAME = "HelloWorld"; final String SOAP_ACTION = NAMESPACE + "/" + METHOD_NAME; final String URL = "http://example.com/service?wsdl"; ``` 接着,创建SoapObject作为SOAP请求的主体,...

    Assembly-Tutorial.md

    ##### 示例:Hello World 这是一个简单的汇编程序示例,用于在控制台输出 "Hello, World!"。 ```asm section .data msg db 'Hello, World!', 0 section .text global _start _start: mov eax, 4 mov ebx, 1 ...

    各种语言的Helloworld编程

    public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` JavaScript 在浏览器环境中可以这样写: ```javascript console.log("Hello, World!"); `...

    web assembly-002 安装Rust和WebAssembly工具链和helloworld.avi

    rust学习爱好者

    masm汇编helloworld模板

    在`HelloWorld.asm`中,我们可能会看到类似以下的代码片段,用于打印"Hello, World!": ```assembly section .data hello db 'Hello, World!',0 section .text global _start _start: ; 设置段寄存器 mov ax,...

    ARM-CortexM4-HelloWorld

    ARM-CortexM4-HelloWorld 要求 硬件 STM32F407G-DISC1(开发套件) 微型USB到USB-A 软件 STM32Cube IDE 硬件规格 核心架构-Arm 数据总线宽度-32位 记忆体大小-1MB 内存大小-192kB 接口-CAN,以太网,I2C,SPI,...

    java8stream源码-awesome-stars:我自己的真棒清单!

    java8 ...Helloworld programs in different languages,pull requests are welcome :) Awk - A script that cleans up the php.ini file with security in mind Batchfile - Python best practices gui

    nasm代码-Hello, world!

    "nasm代码-Hello, world!" 是一个典型的汇编语言程序示例,用于向初学者展示如何用NASM(Netwide Assembler)这个流行的x86汇编器编写简单的程序。下面我们将详细探讨NASM汇编器和“Hello, world!”程序的实现。 ...

    nes-hello-world:NES的Hello World(ca65汇编程序的6502汇编版本)

    NES的Hello World(ca65汇编程序的6502汇编版本) 请参阅父存储库以了解其他项目。 正在进行中,但解决方案当前显示精灵,显示背景,并使用d-pad移动精灵。 项目内容 hello_world.s-ca65源文件 hello.chr-精灵...

    MASM32 Hello World

    首先,我们来看`HelloWorld.asm`文件,这是源代码文件。在汇编语言中,每个语句都对应机器码,直接控制计算机硬件。MASM32提供了方便的语法,允许程序员用高级形式表示低级指令。在这个例子中,源代码可能包含以下...

    本地化的 Hello World 示例

    在这个例子中,`MyNamespace` 应替换为你的命名空间,`Resources` 是资源文件的类名,`HelloWorld` 是资源键,对应于资源文件中存储的 "Hello World" 文本。 最后,压缩包中的文件“说明.htm”可能包含了详细的步骤...

    C#入门工程,Helloworld,Helloworld-WinForm

    在"C#入门工程,Helloworld,Helloworld-WinForm"这个项目中,我们可以看到一个初学者如何开始学习和使用C#进行编程。 1. **C#基础** - **语法结构**:C#类似于C++和Java,有着严格的类型系统,支持类、接口、枚举...

    rust代码-Hello World Rust

    4. 编译完成后,执行`./target/debug/hello-world-rust`(或根据你的操作系统可能略有不同)。 祝你学习Rust愉快! ``` `cargo`是Rust的构建系统,它管理依赖并提供了一种构建、测试和打包Rust项目的标准方式。...

    Hello,World!

    "Hello, World!" 是编程世界的传统起点,是初学者学习新编程语言时编写的第一个小程序。这个简单的程序在屏幕上打印出 "Hello, World!" 文本,帮助开发者了解如何在特定的语言环境中控制输出。下面我们将详细讲解...

    汇编语言hello,world

    "Hello, World!"程序是初学者入门编程时常见的一个简单示例,用于展示语言的基本用法。在这里,我们将深入探讨如何使用汇编语言在DOS环境下编写和运行一个"Hello, World!"程序。 首先,我们有两个汇编源文件,`boot...

    Assembly-HOWTO.pdf

    这部分提供了一个快速了解和开始使用汇编语言的教程,可能包括简单的程序示例,如打印“Hello, World!”,以及基本的指令集介绍。 **7. 资源** 在文档的最后,作者列举了一些学习和进一步研究汇编语言的资源,可能...

    MASM_masmhellloworld_汇编语言helloworld_

    标题“MASM_masmhellloworld_汇编语言helloworld_”揭示了我们要讨论的主题,即使用Microsoft Macro Assembler(MASM)编写一个简单的“Hello, World!”程序。这是一个经典的编程入门示例,用于演示基本的汇编语言...

Global site tag (gtag.js) - Google Analytics