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-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(Microsoft Assembler)在DOS环境下编写并编译一个简单的“Hello, World!”程序。这个压缩包...
根据给定的文件信息,我们可以总结出以下关于“汇编语言实现输出HelloWorld”的相关知识点: ### 汇编语言简介 汇编语言是一种低级编程语言,它为每种类型的计算机提供了一对一的机器指令映射。汇编语言程序通常由...
final String METHOD_NAME = "HelloWorld"; final String SOAP_ACTION = NAMESPACE + "/" + METHOD_NAME; final String URL = "http://example.com/service?wsdl"; ``` 接着,创建SoapObject作为SOAP请求的主体,...
##### 示例:Hello World 这是一个简单的汇编程序示例,用于在控制台输出 "Hello, World!"。 ```asm section .data msg db 'Hello, World!', 0 section .text global _start _start: mov eax, 4 mov ebx, 1 ...
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` JavaScript 在浏览器环境中可以这样写: ```javascript console.log("Hello, World!"); `...
rust学习爱好者
在`HelloWorld.asm`中,我们可能会看到类似以下的代码片段,用于打印"Hello, World!": ```assembly section .data hello db 'Hello, World!',0 section .text global _start _start: ; 设置段寄存器 mov ax,...
ARM-CortexM4-HelloWorld 要求 硬件 STM32F407G-DISC1(开发套件) 微型USB到USB-A 软件 STM32Cube IDE 硬件规格 核心架构-Arm 数据总线宽度-32位 记忆体大小-1MB 内存大小-192kB 接口-CAN,以太网,I2C,SPI,...
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(Netwide Assembler)这个流行的x86汇编器编写简单的程序。下面我们将详细探讨NASM汇编器和“Hello, world!”程序的实现。 ...
NES的Hello World(ca65汇编程序的6502汇编版本) 请参阅父存储库以了解其他项目。 正在进行中,但解决方案当前显示精灵,显示背景,并使用d-pad移动精灵。 项目内容 hello_world.s-ca65源文件 hello.chr-精灵...
首先,我们来看`HelloWorld.asm`文件,这是源代码文件。在汇编语言中,每个语句都对应机器码,直接控制计算机硬件。MASM32提供了方便的语法,允许程序员用高级形式表示低级指令。在这个例子中,源代码可能包含以下...
在这个例子中,`MyNamespace` 应替换为你的命名空间,`Resources` 是资源文件的类名,`HelloWorld` 是资源键,对应于资源文件中存储的 "Hello World" 文本。 最后,压缩包中的文件“说明.htm”可能包含了详细的步骤...
在"C#入门工程,Helloworld,Helloworld-WinForm"这个项目中,我们可以看到一个初学者如何开始学习和使用C#进行编程。 1. **C#基础** - **语法结构**:C#类似于C++和Java,有着严格的类型系统,支持类、接口、枚举...
4. 编译完成后,执行`./target/debug/hello-world-rust`(或根据你的操作系统可能略有不同)。 祝你学习Rust愉快! ``` `cargo`是Rust的构建系统,它管理依赖并提供了一种构建、测试和打包Rust项目的标准方式。...
"Hello, World!" 是编程世界的传统起点,是初学者学习新编程语言时编写的第一个小程序。这个简单的程序在屏幕上打印出 "Hello, World!" 文本,帮助开发者了解如何在特定的语言环境中控制输出。下面我们将详细讲解...
"Hello, World!"程序是初学者入门编程时常见的一个简单示例,用于展示语言的基本用法。在这里,我们将深入探讨如何使用汇编语言在DOS环境下编写和运行一个"Hello, World!"程序。 首先,我们有两个汇编源文件,`boot...
这部分提供了一个快速了解和开始使用汇编语言的教程,可能包括简单的程序示例,如打印“Hello, World!”,以及基本的指令集介绍。 **7. 资源** 在文档的最后,作者列举了一些学习和进一步研究汇编语言的资源,可能...
标题“MASM_masmhellloworld_汇编语言helloworld_”揭示了我们要讨论的主题,即使用Microsoft Macro Assembler(MASM)编写一个简单的“Hello, World!”程序。这是一个经典的编程入门示例,用于演示基本的汇编语言...