很简单的汇编题目。送分啦!

2024年11月16日 12:08
有4个网友回答
网友(1):

你的字符串没有结束符'$',加上试试看。
把这行改改:
c DB 'Hello world !' 改成-----
c db 'Hello world !',13,10,'$'
如果还不行,那把 MOV DX,OFFSET c 这行也改改---mov dx,c

网友(2):

STACK SEGMENT
DW 32 DUP(0)
STACK ENDS

DATA SEGMENT
MESSAGE DB 'HELLO, WORLD!', '$'
DATA ENDS

CODE SEGMENT
MAIN PROC FAR
ASSUME SS:STACK, DS:DATA, CS:CODE
MOV AX, DATA
MOV DS, AX
MOV AH, 09H
MOV DX, OFFSET MESSAGE
INT 21H
MOV AX, 4C00H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN
你对照一下就知道怎么改了
你是怎么运行的?...
要在DOS下先编译,链接,再执行

网友(3):

可以用了,我在机器上调试过
STACK SEGMENT
DW 32 DUP(0)
STACK ENDS

DATA SEGMENT
MESSAGE DB 'HELLO, WORLD!', '$'
DATA ENDS

CODE SEGMENT
MAIN PROC FAR
ASSUME SS:STACK, DS:DATA, CS:CODE
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MESSAGE
MOV AH, 09H
int 21h
mov ah,07h
INT 21H
MOV AX, 4C00H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN

网友(4):

一来字符串末尾少了'$'结束符
二来程序没有开始执行的地方,应该有
start:
end start结构
三 少assume cs:code,ds:data
没有assume关联的话,程序不知道cs ds寄存器代表什么

楼上的程序很好