“Hello, World!”程序是一个只在计算机屏幕上打印出“Hello, World!”(英语,意为“世界,你好!”)字串的计算机程序。该程序通常是计算机程序设计语言的初学者所要学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境已经正确安装。 p JM&R<i:
{4HcecT
将Hello World程序作为第一个学写的程序,现在已经成为一种传统。该程序最早出现在由Brian Kernighan和Dennis Ritchie写的计算机程序设计教程《C语言程序设计》。 9wpV} .(
U$wD'v3pw
以下是用不同语言写成的Hello World程序的几个例子: t}f,j^`e
Ada ~cb7]^#u1l
with Ada.Text_Io; use Ada.Text_Io; "\l#q$1h
procedure Hello is xcE<|0N
:
begin ,2`FSL%J
Put_Line ("Hello, world!"); )|E617g
end Hello; #;F*rJ[XY
&4jc3_UKV
!ZzDSQ;
汇编语言 K7}]pk,AG
uN9J?j*ir
x86 CPU,DOS,TASM TX$4x~:
MODEL SMALL 3s$vaV~(a
IDEAL 9<-7AN}Z
STACK 100H L3'$"L.|u
_?c7{
DATASEG i6$q1*
HW DB 'Hello, world!$' 6~!l7HqO
oS#PBql4
CODESEG noQS bI
@
MOV AX, @data Ql{:H5
MOV DS, AX h0;R*c
MOV DX, OFFSET HW Q;0g
MOV AH, 09H 3\0,>L9ET@
INT 21H @XN|R
MOV AX, 4C00H D;+sStZK3
INT 21H +$
0wBU
END K)s{D]B
/=S\v<z
T!Z).PA#
x86 CPU,GNU/Linux,NASM o' Kl+gw4
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). 0c$ ')`!m
;Enter this into "hello.asm" then type: #Mrc!pT]xy
;"nasm -f elf hello.asm" W?R@ eq.9
;"ld hello.o -o hello" 7~m[:Eg6[s
;"./hello" v)%0`%nSR
%>!$eCX
section .data ;data section declaration R 9b0D>Lxt
msg db 'Hello World!',0AH
u E<1PgW
len equ $-msg ;string length ,<!v!~Iy
JNxrs~}
section .text ;code section declaration r Zg(%6@
global _start ;entry point (start of execution) V[ 'lB.&t
_start: mov edx,len ;string length eizni\
mov ecx,msg ;string start QpiA~4
mov ebx,1 ;file handle: stdout sz+%4T
mov eax,4 ;sys_write .r\|9 *j<
int 80h ;kernel system call -X_dY>>s
9|qzFmE#
mov ebx,0 ;return value rIQ%X`Y
mov eax,1 ;sys_exit D /bF
int 80h ;kernel system call ,qT+Vqpr{
f yhBfA:u
[SU;U['7
x86 CPU,Windows,MASM32 't3&,:Y
.386 [K""6D
.model flat,stdcall );=0cnr3
option casemap:none s|!lw
;Include 文件定义 1Ms_2
include windows.inc jAak,[~;
include user32.inc *IWWD\U
includelib user32.lib 1w'W)x
include kernel32.inc FqXE6^
includelib kernel32.lib W=\45BJ
;数据段 T$*#q('1"}
.data A&D<}y/%
szCaption db 'A MessageBox!',0 Czb:nyRj
szText db 'Hello,world!',0 6d/1PGB
;代码段 IH3Nkpsg
.code O 4'/C]B2
start: ky@ZEp=
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK =[nuesP'
invoke ExitProcess,NULL e3,@prr
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> n<e1=L
end start mKuY=#R P
<ZjT4><
vq:?a
AWK 0^K2"De
BEGIN { print "Hello, world!" } a[@Y>
+,T z +!
>9<