求一个汇编helloworld

来源:互联网  时间:2016/7/16 13:12:42

关于网友提出的“ 求一个汇编helloworld”问题疑问,本网通过在网上对“ 求一个汇编helloworld”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 求一个汇编helloworld
描述:

最好可以短一点。。。 还有说明编译器。


解决方案1:

assume cs:code,ds:data
data segment
db 'hello world!','$'
data ends
code segment
main:
mov ax,data
mov ds,ax
mov ah,09h
mov dx,0
int 21h
mov ax,4c00h
int 21h
code ends
end main

用masm5.0或masm6.0或与其兼容的IDE都行。
先输入debug
然后按q退出
然后再输入程序名执行才能看到效果。 解决方案2:

DATAS SEGMENT
    a db 'Hello world!$' 
DATAS ENDS
STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    
    lea dx,a
    mov ah,9
    int 21h
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
编译器我是用MasmForWindows,用masm也一样

解决方案3:

Masm5或Tasm4.1能用


DATA SEGMENT ;数据段开始
NOTE DB 'Hello World!',0ah,0dh,'$'
DATA ENDS ;数据段结束
CODE SEGMENT ;代码段开始
ASSUME CS:CODE, DS:DATA ;将代码段指定给CS寄存器,将数据段指定给DS寄存器
BEGIN: MOV AX,DATA ;AX累加器
MOV DS,AX ;DS数据段寄存器
MOV DX,OFFSET NOTE ;这句可以用LEA DX,NOTE来替代,DX是数据通用寄存器
MOV AH,09H ;09H对应的是显示字符串
INT 21H     ;注意,INT 21H是用来调用功能的,具体区别用AH来识别
MOV AH,4CH ;4CH功能在于让你退出程序,
INT 21H ;调用功能,由上面的AH决定,这句就是要退出程序了
CODE ENDS ;代码段结束
END BEGIN
解决方案4:

这个是VC9自己生成的汇编代码

	.686P
.XMM
.model flat
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
_DATA SEGMENT
$SG745 DB 'hello world', 00H
_DATA ENDS
PUBLIC _main
EXTRN _printf:PROC
_TEXT SEGMENT
_main PROC
push ebp
mov ebp, esp
push OFFSET $SG745
call _printf
add esp, 4
xor eax, eax
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END

上一篇求教:UTF-8编码怎样转化成Unicode 编码啊?
下一篇请教 有一个二维数组。怎样存储 才可以根据输入的数值取得对应的第二列数据呢
明星图片
相关文章
《 求一个汇编helloworld》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)