文档章节

windows 下 nasm, tcc 编译的 helloworld

MtrS
 MtrS
发布于 2015/01/18 10:18
字数 220
阅读 599
收藏 7

这段代码很早以前写过, 今天想起来来了,故再次写一下

<!-- lang: java -->
section .data
	hello db "hello world!", 0xa, 0

section .text

global main;  // 说明程序的入口点,这个可以随便取任意合法的标号,
                          ; //但要调用c语言的库函数还是要用main,
                          ; //否则链接的时候会提示找不到main

main:
	push dword hello  ;; //c语言中函数的参数的传递都是放在栈中的
	extern printf           
	call printf                 ; // 调用外部函数的作用
	
	add esp, byte 4      ;; // 事实上这是一个出栈动作,以让程序找到正确的地址进行返回
	ret
nasm -f elf hello.asm  -o hello.o 
tcc hello.o -o  hello.exe

在此输入图片描述

<!-- lang: java -->
	section .data
	format db "%d", 0xa, 0;

section .text
global main
main:
	mov eax, 0
	mov ecx, 100

l:
	add eax, ecx
	loop l
	mov eax, (1+100)*100/2;

	extern printf
	push dword eax;
	push dword format;   printf(const char*,...);
	call printf
	add esp, byte 8
	ret

在此输入图片描述

© 著作权归作者所有

共有 人打赏支持
上一篇: Python C
MtrS
粉丝 32
博文 569
码字总数 359284
作品 0
榆林
私信 提问
linux 下Bochs的安装及问题解决

首先去bochs的官网 http://bochs.sourceforge.net/ 下载最新的程序,我直接下的是bochs-2.4.tar.gz tar zxvf bochs-2.4.tar.gz ./configure 如果要调试功能的话,可查看configure文件做相应调...

xwisen
2014/07/21
0
0
使用NASM和CL(或LINK)写HelloWorld

原文地址:http://www.tech-juice.org/2011/02/26/assembler-tutorial-hello-world-with-nasm-and-cl-exe-or-link-exe/ 前言 ... 编译汇编代码 我们来编译链接这个名为helloworld.asm的汇编代......

duweix
2014/02/25
0
0
Linux 下学习汇编语言 方案一

Linux 下学习80x86汇编语言 方案一 masm 使用书籍: 汇编语言 --王爽 软件: dosemu dosemu 里面已经包含 debug程序 并且把d盘设置为用户的home目录 下载站点: http://dosemu.com/ or apt-...

munds
2016/03/08
77
0
配置指定使用tcc编译器编译nim程序

配置指定使用tcc编译器编译nim程序 1、前言 nim是什么? nim是一门静态编译型语言,语法类似python,nim的代码被翻译成C代码再被C编译器编译成可执行文件。因此nim的可执行文件比较小,性能应...

黑暗圣堂武士
2016/10/13
68
0
TinyCC的Java绑定版本--TCC4Java

TCC4Java是TinyCC(也叫做TCC,一个神奇的C编译器)的Java绑定,让Java支持使用C作为脚本语言。 TCC4Java支持以下操作系统: Windows x86/x64 Linux x86/x64/arm Mac OS X Debian kFreeBSD x86...

绝对零度
2014/06/05
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

什么时候使用字节流、什么时候使用字符流,二者的区别

在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 InputStream 和OutputStream,...

watermelon11
49分钟前
4
0
Alpakka Kafka,反应式Kafka客户端

Alpakka Kafka 是一个要用于 Java 和 Scala 语言的开源的流感知和反应式集成数据线项目。它建立在 Akka Stream之上,提供了 DSL 来支持反应式和流式编程,内置回压功能。Akka Streams 是 Re...

羊八井
今天
4
0
PHP7源码编译安装详解

$ yum groupinstall "development tools"$ yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype \freetype-devel libpng libpng-devel libxml2 ......

问题终结者
今天
5
0
Django学习笔记-从创建虚拟环境到启用服务

1 前置条件 windows系统下,目前已经完成anaconda3或miniconda3的安装,这也意味着已经完成了python3的安装。 2 创建虚拟环境 1、通过Anaconda Prompt,使用conda命令创建虚拟环境(base) e...

davidwbnu
昨天
4
0
python学习04:函数的定义及基本使用

python可以像c++一样,可以直接定义函数。具体格式如下: def(关键字) 函数名(形参01,形参02...): do_something... #如果有返回值,则调用以下语句 return 返回值...

太空堡垒
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部