Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Ошибка L1127:far segment references not allowed...


Автор: ingener 12.5.2012, 19:39
Добрый день, пишу программу по книге Пирогова В.Ю. При линковке выходит ошибка L1127:far segment references not allowed with/TINY. Видимо неправильно использую модель памяти, пробовал вставлять текст вначале ".model small, но ошибка выходит таже. Что необходимо сделать?

используемая программа masm 6.11.
 
Код

DATA SEGMENT
PATH DB "PRIMER.TXT",0
BUF  DB ?
CX_  DW ?
DX_  DW ?
DATA ENDS
SSEG SEGMENT STACK
     DB 200 DUP(?)
SSEG ENDS
CODE SEGMENT
     ASSUME CS:CODE, DS:DATA, SS:SSEG
BEGIN:
     MOV AX, DATA
     MOV DS, AX

     MOV AX,3D00H
     LEA DX,PATH
     INT 21H

     JC EXIT

     MOV BX,AX
     XOR CX,CX
     XOR DX,DX
     MOV AX,4202H
     INT 21H

     MOV CX,DX
     MOV AX,4200H
     SUB DX,3
     SBB CX,0
     MOV CX_,CX
     MOV DX_,DX
     INT 21H
LOO:

     MOV AH,3FH
     LEA DX,BUF
     MOV CX,1
     INT 21H

     CMP BUF,10
     JZ  OUT_STR

     SUB DX_,1
     SBB CX_,0
     MOV DX,DX_
     MOV CX,CX
     INT 21H
     JMP SHORT LOO

OUT_STR:
     MOV AH,3FH
     LEA DX,BUF
     MOV CX,1
     INT 21H
     CMP BUF,13
     JZ CLOSE
     CMP AX,CX
     JNZ CLOSE

     MOV DL,BUF
     MOV AH,2
     INT 21H
     JMP OUT_STR
CLOSE:
     MOV AH, 3EH
     INT 21H
EXIT:
     MOV AH, 4CH
     INT 21H
CODE ENDS
     END BEGIN



Автор: ingener 13.5.2012, 19:36
Нашел, в bat-файле нужно было убрать ключ /AT команды ассемблирования, он создает com файл, однако в программе используются больше одного сегмента, которые для данного файла не подходят.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)