0

私はアセンブリプログラミングの初心者です。これは私が試していたコードですが、エラーを返し続けます。

エラーは次のとおりです。

F:\masm32\bin>ml PRINTSTRING.ASM
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.
Assembling: PRINTSTRING.ASM
PRINTSTRING.ASM(35) : fatal error A1010: unmatched block nesting : data

私のプログラムは次のとおりです。

;Print a String

data segment
;add your data here
mymessage db"Enter your data $"
end

stack segment
dw 128 dup(0)
end

code segment
Start:

;Set Segment Registers
    mov     ax,OFFSET mymessage
    mov     ds,ax
    mov     es,ax
    lea     dx,mymessage
    mov     ah,mymessage
    mov     ah,9
    int     21h

    mov     ah,1
    int     21h

    mov     ax,4c00h
    int     21h

end
end Start

前もって感謝します。

4

3 に答える 3

0

.model small最初の行として追加します。

于 2013-03-06T04:19:13.360 に答える
0

まず、なぜ 16 ビット DOS アセンブリを行っているのですか? 32Bit の組み立ては少し簡単です。

これは機能します:

.model small
.stack 100h
.data
mymessage db 'Enter your data $'

.code
start:
    mov     ax, @data
    mov     ds, ax

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

    mov     ah, 1h
    int     21h

    mov     ax, 4c00h
    int     21h
end start

組み立ててリンクします。

D:\Projects\DOS>ml /c prateek.asm
Microsoft (R) Macro Assembler Version 6.15.8803
Copyright (C) Microsoft Corp 1981-2000.  All rights reserved.

 Assembling: prateek.asm

D:\Projects\DOS>link16 prateek.obj

Microsoft (R) Segmented Executable Linker  Version 5.60.339 Dec  5 1994
Copyright (C) Microsoft Corp 1984-1993.  All rights reserved.

Run File [prateek.exe]:
List File [nul.map]:
Libraries [.lib]:
Definitions File [nul.def]:

D:\Projects\DOS>

DOSBoxで問題なく動作します

于 2013-03-10T06:57:20.103 に答える
0

これを試して

data segment

;add your data here

mymessage db"Enter your data $"

data ends

stack segment

dw 128 dup(0)

stack ends

code segment

Start:


;Set Segment Registers

    mov     ax,OFFSET mymessage

    mov     ds,ax

    mov     es,ax

    lea     dx,mymessage

    mov     ah,mymessage

    mov     ah,9

    int     21h


    mov     ah,1

    int     21h


    mov     ax,4c00h

    int     21h


code ends

end 
于 2016-05-01T13:03:41.303 に答える