繁体   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