簡體   English   中英

在DosBox中編譯匯編程序時出錯

[英]Error compiling assembler program in DosBox

我目前正在DosBox中編譯一個匯編程序,但是我不斷收到一些錯誤。
有人可以幫我修復它們嗎?
我附上一張屏幕快照,上面有我在MASM和鏈接上收到的錯誤。

在此處輸入圖片說明

這是我的代碼:

DATA SEGMENT 
  NUM1 DB ?
  NUM2 DB ?
  RESULT DB ?
  MSG1 DB 10,13,"ENTER FIRST NUMBER TO MULTIPLY : $"
  MSG2 DB 10,13,"ENTER SECOND NUMBER TO MULTIPLY : $"
  MSG3 DB 10 ,13,"RESULT OF MULTIPLICATION 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

  MUL NUM1 

  MOV RESULT,AL
  AAM

  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

MASM SEGMENT指令的簽名如下:

name SEGMENT [[READONLY]] [[align]] [[combine]] [[use]] [[characteristics]] ALIAS(string) [['class']] 
  statements  
name ENDS 

因此,您的代碼包含匯編程序提到的兩個錯誤:

DATA SEGMENT 
  NUM1 DB ?
  ...
ENDS        ; This line should be: DATA ENDS

CODE SEGMENT 
  ASSUME DS:DATA,CS:CODE
  START:
  ...
ENDS        ; This line should be: CODE ENDS

因此,僅在`ENDS'指令之前遺漏了各自的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM