Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2016, 09:20   #1
PshPsh
 
Регистрация: 26.02.2016
Сообщений: 5
Сообщение ошибка компилятора

Не могу понять в чем проблема...пишет что end необходим в конце файла..если убрать метку то ругается линковщик-нету точки входа...
использую MASM х64 посмотрел материалы по этому поводу ничего не нашел...Вообщем кто поможет разобраться буду очень признателен..
код
Код:
name "test"
.data
lab:
    stra DB 'Hello world$'
.code 
 start:
   mov eax,lab  
   mov ds,eax
   xor ax,ax  
   mov ah ,09h
   xor dx,dx
   int 21h
END start
PshPsh вне форума Ответить с цитированием
Старый 28.08.2016, 16:43   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

PshPsh, у тебя в папке "EXAMPLE" должны быть куча примеров. Загляни в неё..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 28.08.2016, 17:16   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
END start
это конец функции start, где конец программы? Вот и пишет:
Цитата:
end необходим в конце файла
p51x вне форума Ответить с цитированием
Старый 28.08.2016, 19:38   #4
PshPsh
 
Регистрация: 26.02.2016
Сообщений: 5
По умолчанию поправочка

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
END start
это конец функции start, где конец программы? Вот и пишет:
это конец метки
PshPsh вне форума Ответить с цитированием
Старый 28.08.2016, 19:41   #5
PshPsh
 
Регистрация: 26.02.2016
Сообщений: 5
По умолчанию как-то так

Цитата:
Сообщение от R71MT Посмотреть сообщение
PshPsh, у тебя в папке "EXAMPLE" должны быть куча примеров. Загляни в неё..
нет у меня такой папки ...исполюзую MASM в MS studio
PshPsh вне форума Ответить с цитированием
Старый 28.08.2016, 20:04   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

А если вот так ? У меня нету виндовой машины, не могу проверить
Код:
name "test"
.data
lab:
    stra DB 'Hello world$'
.code 
 start:
   mov eax,lab  
   mov ds,eax
   xor ax,ax  
   mov ah ,09h
   xor dx,dx
   int 21h
   start ENDP

END start

Вот тут по ссылке, есть 2 примера, как раз то что ты хочешь выполнить. И как получисть данные из терминала и записать их в файл.

Все разписано, что к какой регистр выставить, сис-калл и д.т.

Код:

DOSSEG
.MODEL LARGE
.STACK 200h

.DATA
	hello      db 'Hello world!',10,13,'$'
	helloLen   db 14

.CODE
	ASSUME CS:@CODE, DS:@DATA

START:
	mov ax,@data
	mov ds,ax

	; Write 'Hello world!' to the screen
	mov ah,09h            ; 'print' DOS service
	mov dx,offset hello   ; string to write
	int 21h               ; call DOS service



	; Terminate program
	mov ah,4Ch            ; 'exit' DOS service
	mov ax,0              ; exit with error code 0
	int 21h               ; call DOS service
END START
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 29.08.2016, 08:14   #7
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Код:
	; Terminate program
	mov ah,4Ch            ; 'exit' DOS service
	mov ax,0              ; exit with error code 0
	int 21h               ; call DOS service
..только не АХ=0, а АL=0
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 29.08.2016, 10:54   #8
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

А в AT&T / Linux по другому.

Код:
movl $1, %eax       # tell kernel use system call #1 for exit 
movl $0, %ebx       # exit with status 0 
int  $0x80          # interrupt 80 => system call in %eax

// или 

movl $0, %eax       # return 0;
Я даже на 1/100ю не знаю ASM так как ты знаешь =)

TC: Слушай R71MT
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 29.08.2016 в 10:56.
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка компилятора ElShikari Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 06.10.2015 09:05
Ошибка компилятора sbnm Помощь студентам 6 30.03.2013 21:11
Ошибка компилятора... p1r2o3 Общие вопросы .NET 3 11.09.2010 13:36
Ошибка компилятора. LARGEADDRESSAWARE Fantom101 Общие вопросы C/C++ 1 12.09.2009 05:20
Ошибка компилятора??? KIRILL_FR Общие вопросы Delphi 10 25.04.2008 13:38