“Hello, World!”程序是一个只在计算机屏幕上打印出“Hello, World!”(英语,意为“世界,你好!”)字串的计算机程序。该程序通常是计算机程序设计语言的初学者所要学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境已经正确安装。 0 0M@
l PK
+$f$
将Hello World程序作为第一个学写的程序,现在已经成为一种传统。该程序最早出现在由Brian Kernighan和Dennis Ritchie写的计算机程序设计教程《C语言程序设计》。 4Qo]nre!
R
+WP0&d'
以下是用不同语言写成的Hello World程序的几个例子: ,B0_MDA +
Ada ^Nmg07_R
with Ada.Text_Io; use Ada.Text_Io; A` AaTP
procedure Hello is Dg}
Ka7H
begin 69J4=5lX
Put_Line ("Hello, world!"); nSkPM5\TI
end Hello; qUOKB6
x}Aw)QCh+r
/yZQ\ {=
汇编语言 VxXzAeM
]Yvga!S"C
x86 CPU,DOS,TASM H<}^'#"p
MODEL SMALL ;uW}`Q<
IDEAL tPGJ<30
STACK 100H \l.-eu'O
vh*U]3@
DATASEG 4qYUoCR&
HW DB 'Hello, world!$' 82]vkU
k5C@>J
CODESEG ~Q>_uw}g#
MOV AX, @data .F(i/)vaq|
MOV DS, AX ^1L>l9F
MOV DX, OFFSET HW ])Qs {hs~s
MOV AH, 09H |"9 #bU
INT 21H E[bd@[N
8
MOV AX, 4C00H ! ykx^z
INT 21H 9$|Gfyv
END ]- 4QNc=
NsJ(`zk:
*0>mB
x86 CPU,GNU/Linux,NASM .?!N^_ Ez3
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). V`7FKL@"
;Enter this into "hello.asm" then type: ^pe{b9c
;"nasm -f elf hello.asm" +{L<? "
;"ld hello.o -o hello" YBP:q2H
;"./hello" K!] 1oy'V
M>>qn_yq4
section .data ;data section declaration ,i,q!M{-
msg db 'Hello World!',0AH v0ES;
len equ $-msg ;string length [w&$| h:;
+C(/Lyo}
section .text ;code section declaration EB_NK
global _start ;entry point (start of execution) d R]Q$CJ
_start: mov edx,len ;string length o`q_wdy?
mov ecx,msg ;string start YcN!T"wJ@
mov ebx,1 ;file handle: stdout C,pJ`:P
mov eax,4 ;sys_write '^FGc
int 80h ;kernel system call lME)?LOI
/M*a,o
mov ebx,0 ;return value zdEPDdB
mov eax,1 ;sys_exit }LijnHH.
int 80h ;kernel system call LI6hEcM=
Wf&W^Q
BZXUwqEh
x86 CPU,Windows,MASM32 =T7A]U]
.386 yT#{UA^
.model flat,stdcall 9gEssTkts
option casemap:none Myq5b`z
;Include 文件定义 o, !T2&}
include windows.inc eU N"w,@y
include user32.inc C$@yG)Pj
includelib user32.lib p!<$vE
include kernel32.inc {M?vBgR\B
includelib kernel32.lib QEu=-7@>
;数据段 ~35U]s@v
.data /2HN>{F^Y
szCaption db 'A MessageBox!',0 Cc, `}SP
szText db 'Hello,world!',0 %T[^D&9$,
;代码段 =Odv8yhn
.code x
$zKzfHW
start: S>0nx ^P
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK `)Z!V?&