用汇编语言程序编出“Hello world”怎么编

作者&投稿:昌泉 (若有异议请与网页底部的电邮联系)
用汇编语言编写有个程序,要求显示出"Hello World"即可~

data segment
msg db 'Hello World','$'
data ends
code segment
assume ds:data,cs:code
main proc far
mov ax,data
mov ds,ax
lea dx,msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
main endp
code ends
end main

;这个是8086的写法
data segment ;这里定义一个数据段
tab db 'hello world$' ;这里用内存存放字节数据 'hellow world!',$用来判断字符串是否输出完毕
data ends ;数据段的结束标志
code segment ;这里定义了一个代码段
assume cs:code, ds:data ;这里把程序中定义的段与对应的段寄存器关联起来
start: ;这里是一个标号,根据end后面的标号判断这里是程序的开始位置
mov ax,data
mov ds,ax ;这里把数据段的地址放到数据段寄存器ds中
lea dx,tab ;dx中放将要显示数据的偏移地址
mov ah,9h
int 21h ;调用21号中断的9号功能来显示字符串
mov ah,4ch
int 21h ;程序返回
code ends ;代码段的结束语
end start ;定义程序从哪个标号处开始执行

;==========================================================
;这里的是win32的汇编写的

.386 ;这里定义了使用的指令集是80386的
.model flat,stdcall ;定义内存模式和调用的方式(堆栈平衡)
option casemap:none ;定义对大小写是否敏感

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

includewindows.inc
includeuser32.inc
includelibuser32.lib
includekernel32.inc
includelibkernel32.lib ;这里引用了一些头文件来说明将要用到的api函数

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
szCaptiondb'A MessageBox !',0
szTextdb'Hello World !',0 ;定义数据段,上面的是标题,这里的是显示的内容
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
;调用messageBox函数来显示字符串
invoke ExitProcess,NULL
;调用函数来结束这个程序的进程


;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start ;定义程序从哪里开始运行

程序如下:
ORG 0000H
LJMP START
ORG 0030H
START:
;-------------设置串行口
MOV SCON, #50H ;设定串行通信方式1,由T1控制波特率
MOV PCON, #00H ;设置SMOD=0
;-------------设置T1
MOV TMOD, #20H
MOV TH1, #0FDH ; 9600@11.0592MHz
MOV TH1, #0FDH
SETB TR1 ;启动T1,作为串行口的波特率发生器

MOV DPTR, #STR_TAB
MOV R2, #11 ;共发出11个字节
F_LOOP:
MOVC A, @DPTR
INC DPTR
MOV SBUF, A
JNB TI, $
CLR TI
DJNZ R2, F_LOOP
SJMP $

STR_TAB:
DB 'H','e','l','l','o',' ','w','o','r','l','d'

data segment
;DATA HERE
String db 'Hello World!$'
data ends

stack segment stack
db 20 dup('STACK')
stack ends

;-------------------------------------------------
code segment
assume ds:data,es:data,ss:stack,cs:code
.586p
start:
mov ax, data
mov ds, ax
mov es, ax
;CODE HERE

mov dx, offset String
mov ah, 09h
int 21h

mov ax, 4c00h
int 21h
code ends
end start

什么汇编 X86 ? MASM ?

用汇编语言程序编出“Hello world”怎么编
答:程序如下:ORG 0000H LJMP START ORG 0030H START:;---设置串行口 MOV SCON, #50H ;设定串行通信方式1,由T1控制波特率 MOV PCON, #00H ;设置SMOD=0 ;---设置T1 MOV TMOD, #20H MOV TH1, #0FDH ; 9600@11.0592MHz MOV TH1, #0FDH SETB TR1 ...

用VI写了一个hello.c程序放在/里 请问怎么运行呢?
答:这个并不一定只限于最后一步可执行程序的生成,如用上面所讲的-S生成的汇编程序也可以用-o参 数生成,比如 gcc -o hello.asm -S test.c 这样hello.asm就是test.c经过预处理和编译之后的结果。-pipe使用管道来代替编译中的临时文件,因为编译的整个过程有几个不同的步骤,每一个步骤都是以前一个步骤的输出为输...

helloworld代码怎么写?
答:printf("hello, world\n");实际上将“Hello”和“World”一起使用的程序最早出现于1972年,出现在贝尔实验室成员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中:main(){ extern a,b,c;putchar(a);putchar(b);putchar(c);putchar('!*n');} a'hell';b'o,w';c...

计算机语言是什么?
答:汇编语言中由于使用了助记符号,用汇编语言编制的程序送入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的“汇编程序“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称源程序,运行时汇编程序要将源程序翻译成目标程序。目标...

琢石成器——Windows环境下32位汇编语言程序设计的前言
答:所以这就是理由之一:Win32汇编可以当做一种功能强大的开发语言使用,使用它完全可以开发出大型的软件来。正因为Win32汇编看上去不再那样低级,于是有读者曾经提出:Win32汇编讲的都是用API来写程序,和高级语言差不多,以前在DOS下使用的中断什么的都不能用,所以没有什么新奇的了。还有读者认为本书只不过是MSDN的汇编...

汇编语言程序是什么
答:机器语言,是第一代计算机语言。 2. 汇编语言 为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序...

linux使用gcc编译c语言程序linux使用gcc
答:GCC最基本的用法是∶gcc其中options就是编译器所需要的参数,filenames给出相关的文件名称。-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-ooutput_filename,确定输出文件的名称为output_filename,同时这个名称不...

汇编语言、机器语言 C语言
答:计算机语言通常分为三类:即机器语言,汇编语言和高级语言。 (了解内容一) 1. 机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。 用机器语言编写程序,编程人员要首先熟记所用...

计算机语言都有哪几类?
答:计算机语言通常分为三类:即机器语言,汇编语言和高级语言。 (了解内容一) 1. 机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。 用机器语言编写程序,编程人员要首先熟记所用计...

电脑编程软件有哪些
答:C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为...