一百分求输出hello world的代码,并附有对输出那段代码的相关注释

feel8 2003-11-12 09:16:29
总是对输出不太明白,求输出helloworld的代码,能够在输出那段加以说明最好。
...全文
52 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2003-11-13
  • 打赏
  • 举报
回复
我来个COM格式的

cseg segment
;=================================================
assume cs: cseg, ds: cseg
org 100h ;com格式要求代码从100H处开始
;-----<代码部分>----------------------------------
@start:
;以下显示字符串Hello world!

;1.将待显示的字符串首地址送
mov dx, offset strHello

;2.在AH中设置要调用的DOS中断子功能号
; 09H子功能是显示字符串
mov ah, 09h
;3.调用21H中断
int 21h

;以下是返回DOS
;1.在AH中设置要调用的DOS中断子功能号
; 4CH子功能是结束程序返回DOS
; AL中为返回给DOS的代码
mov ax, 4c00h

;2.调用21H中断
int 21h
;--<数据部分>--------------------------------
strHello db "Hello, world!$"
;============================================
cseg ends
end @start

willing521 2003-11-13
  • 打赏
  • 举报
回复
DATA SEGMENT
MES DB 'Hello Word!','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
BEGIN: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

XP 系统,命令提示符,MASM5下通过。
winds 2003-11-13
  • 打赏
  • 举报
回复
DATA SEGMENT
NOTE DB‘HELLO WORLD!’,’
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
BEGIN: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET NOTE
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

我这个可以:)自己试过了再MASM6.11下
winds 2003-11-13
  • 打赏
  • 举报
回复
alex你的masm是什么版本?
我的6。11编译通不过
feel8 2003-11-13
  • 打赏
  • 举报
回复
谢谢各位,结帐:p
fly80 2003-11-13
  • 打赏
  • 举报
回复
应该masm.exe *.asm 再link.exe *.obj
然后 debug.exe x.exe
feel8 2003-11-13
  • 打赏
  • 举报
回复
可以了,谢谢楼上各位兄弟,偶在xp+masm5下试成功了,汇编调试终于有点感性认识了。

是不是把源码保存为*.asm 然后link.exe *.asm,然后再link.exe *.obj,然后出exe文件?
fengyunxian 2003-11-13
  • 打赏
  • 举报
回复
; Hello World Sample!

; Standard header:
#make_COM#
ORG 100H

; Jump to start:
JMP START

; Data:
msg DB 'Hello, World!', 13, 10
DB 'Please Register.', 13, 10
DB 'Thank you!', '$'


; Load address of msg to DX register:
START: LEA DX, msg

; Print using DOS interrupt:
MOV AH, 9
INT 21h

; Exit to operating system:
MOV AH, 4Ch
INT 21h
bloodless 2003-11-12
  • 打赏
  • 举报
回复
我刚才试过了fly80的程序,是完全正确的
bloodless 2003-11-12
  • 打赏
  • 举报
回复
你搞错了,link的是obj文件,你应该用
link test.obj,或者省略掉obj后缀也可以

至于你说masm test.asm出错,如果你的程序没问题的话,可能是你的汇编版本不同
你直接用
ml test.asm
试试看。
feel8 2003-11-12
  • 打赏
  • 举报
回复
to csdsjkk()
偶们学的是8086/8088,.model small是?

to fly80(天山飞雪)
偶把代码保存为test.asm,然后link.exe test.asm 出错,masm test.asm 也出错,
偶初学,可以简单说说具体如何操作?

谢谢楼上二位:p
fly80 2003-11-12
  • 打赏
  • 举报
回复
data segment
w db 'Hello World!$'
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax

lea dx,w
mov ah,09h
int 21h

mov ah,4ch
int 21h

main endp
code ends
end start
csdsjkk 2003-11-12
  • 打赏
  • 举报
回复
.model small
.stack 1024
.data
msg db 'hello,world',13,10,24h
.code
.startup
mov ax,@data
mov ds,ax
mov dx,offset msg
mov ah,9
int 21h
.exit
end

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧