“Hello, World!”程序是一个只在计算机屏幕上打印出“Hello, World!”(英语,意为“世界,你好!”)字串的计算机程序。该程序通常是计算机程序设计语言的初学者所要学习编写的第一个程序。它还可以用来确定该语言的编译器、程序开发环境以及运行环境已经正确安装。 n*
7mP
DW,fh8 w
将Hello World程序作为第一个学写的程序,现在已经成为一种传统。该程序最早出现在由Brian Kernighan和Dennis Ritchie写的计算机程序设计教程《C语言程序设计》。 k/|j e~$
3cp"UU}.
以下是用不同语言写成的Hello World程序的几个例子: wU|Y`wJmF
Ada "* Qwaq_
with Ada.Text_Io; use Ada.Text_Io; v8<MAq
procedure Hello is ZV=)`E`I|
begin QCI-YJ&o
Put_Line ("Hello, world!"); @$ea-fK??
end Hello; ~
3HI;
z
[qO5z~I
XP$ 1CWI
汇编语言 -i}@o1o\
1HBdIWhHv.
x86 CPU,DOS,TASM xzGs%01]
MODEL SMALL I2b\[d
IDEAL e?&4;
STACK 100H l*l(QvN_
=}12S:Qhj
DATASEG TAbC-T.EV
HW DB 'Hello, world!$' tvC7LL NP<
@Lj28&4:<
CODESEG (S@H'G"
MOV AX, @data r}gp{Pf7e
MOV DS, AX I&}Md73
MOV DX, OFFSET HW p:,(r{*?
MOV AH, 09H X5@rPGc
INT 21H vk:m>?(
MOV AX, 4C00H U73{Uv
INT 21H {FavF 9O
END ,a I0Aw
IX /r
\\qw"w9
x86 CPU,GNU/Linux,NASM C7]K9
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). /}]Irj4m
;Enter this into "hello.asm" then type: }
r#by%P
;"nasm -f elf hello.asm" }tIIA"dZ
;"ld hello.o -o hello" @jE<V=?
;"./hello" RyGce'
q
.&53WL[D|
section .data ;data section declaration ,UdTUw~F
msg db 'Hello World!',0AH e/?>6'6 5
len equ $-msg ;string length YdI|xu>0A^
xl(];&A3
section .text ;code section declaration GlDl0P,*r
global _start ;entry point (start of execution) Vm1U00lM{
_start: mov edx,len ;string length 4g.y$
mov ecx,msg ;string start YdgaZJs
mov ebx,1 ;file handle: stdout LWb5C{
mov eax,4 ;sys_write Q6cF<L`bW
int 80h ;kernel system call V9 pKbX
v:YW[THre
mov ebx,0 ;return value rZ~.tT|(
mov eax,1 ;sys_exit ~PT(/L
int 80h ;kernel system call #du!tx ( _
OG_2k3v
CapWn~*g
x86 CPU,Windows,MASM32 W*hRYgaX3
.386 X9f!F2x
.model flat,stdcall ,R
j{^-k
option casemap:none
*Mt's[8
;Include 文件定义 B6gSt3w.
include windows.inc +G3&{#D
?
include user32.inc 5]WpH0kzO
includelib user32.lib ^n|u$gIF8
include kernel32.inc _RFTm.9&
includelib kernel32.lib >
dJvl |
;数据段 io]e]m%
.data -vXX u;frt
szCaption db 'A MessageBox!',0 :bLLN
szText db 'Hello,world!',0 FuNc#n>
;代码段 zY<=r.m4
.code npH2&6Yhi^
start: uvK1gJrA)
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK f$x\~y<[
invoke ExitProcess,NULL :N~1fvx
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> R4<