NASM和8086之间的区别

时间:2017-10-20 05:26:54

标签: assembly x86 nasm emu8086

晚上好人。我刚刚开始学习汇编语言,并且我在网上找到了很好的例子。有人建议我使用NASM开始学习,但我发现的例子我发现他们使用的是8086汇编程序。当我按照这些例子时,我注意到如果我使用NASM他们没有在Linux终端上运行,但是如果我安装了8086汇编器模拟器,它确实有效。

我的问题是:NASM和8086汇编程序有什么区别吗?对我来说,它们应该是同一个东西,因为它是汇编代码。如果没有,是否有人可以解释我两者之间是否存在任何差异?以及他们为什么不在NASM和8086上运行相同的代码

这是我关注的代码,它在8086汇编程序上运行但在Linux上没有在NASM上运行

 DATA SEGMENT
     NUM1 DB ?
     NUM2 DB ?
     RESULT DB ?
     MSG1 DB 10,13,"ENTER FIRST NUMBER TO ADD : $"
     MSG2 DB 10,13,"ENTER SECOND NUMBER TO ADD : $"  
     MSG3 DB 10,13,"RESULT OF ADDITION IS : $"
ENDS
CODE SEGMENT 
    ASSUME DS:DATA CS:CODE
START:
      MOV AX,DATA
      MOV DS,AX

      LEA DX,MSG1
      MOV AH,9
      INT 21H

      MOV AH,1
      INT 21H
      SUB AL,30H
      MOV NUM1,AL

      LEA DX,MSG2
      MOV AH,9
      INT 21H

      MOV AH,1
      INT 21H
      SUB AL,30H
      MOV NUM2,AL

      ADD AL,NUM1

      MOV RESULT,AL

      MOV AH,0 
      AAA

      ADD AH,30H
      ADD AL,30H 

      MOV BX,AX

      LEA DX,MSG3
      MOV AH,9
      INT 21H

      MOV AH,2
      MOV DL,BH
      INT 21H

      MOV AH,2
      MOV DL,BL
      INT 21H

      MOV AH,4CH
      INT 21H     
ENDS
END START

谢谢,并希望你有一个美好的夜晚。

0 个答案:

没有答案