我的代码在汇编中出了什么问题?

时间:2016-01-26 08:10:41

标签: assembly

我尝试编写一个程序,询问用户的姓名,并用他的名字问候用户。错误是预期的逗号,冒号或行尾。我怎么能纠正这个?我无法弄清楚我将在哪里进行更正。

%include "asm_io.inc"

segment .data
 MES DB 10,13,'ENTER A STRING:$'
 BUF DB 255,256, DUP, (0)
 MES1 DB 10,13,'HELLO  $'

segment .text
global _asm_main
_asm_main:

enter 0,0
pusha

       MOV AX,DATA
       MOV DS,AX                 
       MOV AH,09H                

       LEA DX,MES
       INT 21H

       MOV AH,0aH                
       LEA DX,BUF
       INT 21H

       MOV AH,09H                
       LEA DX,buf
       INT 21H

       LEA SI,BUF              

       MOV AX,0
       MOV AL,BYTE PTR [SI]
       ADD SI,AX
       MOV BYTE PTR [SI+1],'$' 


       MOV AH,09H
       LEA DX,BUF+2
       INT 21H

       MOV AX,4C00H
       INT 21H

       popa

mov ax, 0
leave
ret

1 个答案:

答案 0 :(得分:1)

BYTE PTR是MASM / TASM语法。您发布的代码(大多数情况下)看起来像是为NASM编写的,因此您应该放弃PTR(即使用MOV AL, BYTE [SI]等)。