Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/342: Рейтинг темы: голосов - 342, средняя оценка - 4.86
Wzz
54 / 54 / 5
Регистрация: 18.10.2009
Сообщений: 309
#1

Как скомпилировать программу?

18.10.2009, 00:54. Просмотров 61593. Ответов 12
Метки нет (Все метки)

Я вот начал разгребать асамблер и на одной из первых глав засел. До етого я занимался с html и код ассамблера мне очень напоминает html с етим проблем нет вомпросі по ассемблированию и тп

1)Я вот написал прогу в блокнотике сохранил как prog001.asm пытаюсь ассемблировать нo masm.exe не запускается в нете 2 день роюсь сказано пропишы через дос к нему команду + в команде и поставь к нему туже задачю на выполнение но не где и как нензнаю как ето зделать.

2)Возможно вы можете посоветовать другой ассемблятор если мазм труба тк я перечитал 5-6 учебников и пособий и каждый афтор советует от ся проги хотелось бы услышать мнение людей которые раюботают с етим языком.

3)Об'ясните нубу цепочку преобразования с символов в блокнотике сохраненіх в формате asm до програмы в формате exe просто я перечитал 5 или 6 учебников но все афторы пропустили ету тему также как и ассемблирование

и последний вопрос на который я тоже ненашол ответа скажыте програма написаная ассамблере на моем компе с процесором x86 и виндом хрюшка профешонал пойдет на другом компе потому что авторы в скольз дают познание о процесорах и говорят мол меж ними есть большая разница и пугают что не на всех машынах возможно запустить программу.

кста вот собствено и сам код программы взят из Калашников Ассемблер Это просто. Как я понимаю он выводит обычный месадж.
Assembler
1
2
3
4
5
6
7
8
9
10
CSEG segment
org 100h
Begin:
mov ah,9
mov dx,offset Message
int 21h
iny 20h
Message db 'Hello, world'$'
CSEG ends
end Begin
P.S Буду оч благодарен если ответят.Реал все обрыскал и нечо ненашол
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2009, 00:54
Ответы с готовыми решениями:

Как скомпилировать
Есть исходники одной программы. Но никак не могу понять как изменив исходник...

Скомпилировать программу на TASM
assume CS:code, DS:data code segment begin: mov AX, data mov DS, AX ...

Скомпилировать программу, и найти ошибки если есть
Помогите пожалуйста скомпилировать программу, и найти ошибки если есть ...

Как скомпилировать в com
Как я понял нужно как то скомпилировать в .com? Т.к. .exe не получается,...

как скомпилировать
Написал первую программу но не могу скомпилировать, подскажите как и в какой...

12
Goodwin98
2521 / 817 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
18.10.2009, 01:51 #2
Wzz, почитайте другие темы в этом разделе. Например эту или эту.
0
Wzz
54 / 54 / 5
Регистрация: 18.10.2009
Сообщений: 309
18.10.2009, 12:21  [ТС] #3
Я пробовал вашим m32v10r но он выдает ошибки какие именно сказать не могу тк текст скопировать не сумел.Я запустил MASM 32 Editor там открыл выше упомянутый код(пробывал как и в формате txt так и в формате asm) и выбрал project=>Assamble ASM File но выдает ошибки которые я несумел скопировать подскажите ето код неверный или я чтото нето делаю
0
Goodwin98
2521 / 817 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
18.10.2009, 14:27 #4
вообще-то программа вышв должна так выглядеть:
Assembler
1
2
3
4
5
6
7
8
9
10
CSEG segment
org 100h
Begin:
mov ah,9
mov dx,offset Message
int 21h
int 20h
Message db 'Hello, world$'
CSEG ends
end Begin
Скачайте doslnk.exe
И в командной строке вводите
Код
ml /c proga.asm
doslnk /t proga.obj
ключ /t - говорит что это должна быть com программа
Вот пример exe программы
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.model small
.stack 100h
.data 
mesg     db "Hello World! $"
.code
main:
        mov ax, @data ; настраивается сегментный регистр
        mov ds, ax
        
        mov ah, 09
        mov dx, offset mesg ; вывод сообщения
        int 21h
        
        mov ah, 01 ; ждет нажатия кнопок
        int 21h
 
        mov ax,4c00h ; выход
        int 21h
 
end main
Её линковать нужно уже без /t
Код
ml /c proga.asm
doslnk proga.obj
20
Wzz
54 / 54 / 5
Регистрация: 18.10.2009
Сообщений: 309
18.10.2009, 20:04  [ТС] #5
Спасибо что поправили всё вышло с Tasm но вот незадача я включаю готовую прогу(exe) и она пустая и через 2 сек вырубается. Это нормально ? я думал она должна вывести месадж.

Добавлено через 41 минуту
Еще 1й вопрос вот Калашников в своей книги говорит что команда add(сложение) работает только под процессором 8086+ стало быть под более старыми компьютерами программа с такой командой работать не будет ?
и 2й вопрос на сколько старий компьютер непрочтет ету программу а то я в процессорах слаб.
0
Goodwin98
2521 / 817 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
18.10.2009, 20:22 #6
Цитата Сообщение от Wzz Посмотреть сообщение
и 2й вопрос на сколько старий компьютер непрочтет ету программу а то я в процессорах слаб.
Если вы читаете эти строки с помощью компьютера, то она у вас точно выполнится.
Спасибо что поправили всё вышло с Tasm но вот незадача я включаю готовую прогу(exe) и она пустая и через 2 сек вырубается.
Сразу же можно сказать, что программа должна быть com, а не exe.
Линкуйте ее с ключем /t.
Вот снял видео, как скомпилировать ее с помощью масма.


А это как скомпилировать exe прогу.
25
Вложения
Тип файла: rar hello.rar (57.4 Кб, 1844 просмотров)
Wzz
54 / 54 / 5
Регистрация: 18.10.2009
Сообщений: 309
18.10.2009, 21:37  [ТС] #7
Большое спасибо,Goodwin98. Щяс пороюсь.

Добавлено через 46 минут
С предыдущей прогой разобрался а вот с этой :
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
CSEG segment
org 100h
Start:
  mov ah,9
  mov dx,offset String
  int 21h
  mov ah,10h
  int 16h
  int 20h
String db 'Нажмите любую клавишу...$'
CSEG ends
end Start
Все переписал с учебника и компилировал мазмом по образу и подобию видио урока но надпись у меня нерусская выходит.
Такой вот вопрос строки 4-6 автор говорит выводят текст на экран но не объясняет почему. Это стандартная команда или же у этой команды будут вариации и важно понимать структуру ?
0
Goodwin98
2521 / 817 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
18.10.2009, 22:40 #8
Лучше пишите латинскими буквами или пользуйтесь каким-нибудь редактором, который работает с дос кодировкой, например тот, который встроенный в far.
2
Wzz
54 / 54 / 5
Регистрация: 18.10.2009
Сообщений: 309
19.10.2009, 17:19  [ТС] #9
Прописал заново программу через Far и все равно надпись нерусская. Должен же быть какой то способ писать на русском.
0
Goodwin98
2521 / 817 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
19.10.2009, 18:40 #10
В редакторе фара кнопка F8 - переключение кодировки OEM (DOS)<->ANSI (WIN)
2
Izhik
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 2
08.11.2009, 23:20 #11
У меня редактор Bred3
Для OEM<->ANSI

//Искал просто сейчас долго чем бы это все конвертить ...

Goodwin98 спасибо что сказал как это .com откомпилировать под MASM.
0
Vladiator
1569 / 639 / 79
Регистрация: 24.02.2009
Сообщений: 9,269
24.11.2009, 13:29 #12
а есть компилятор Assembler для Ubuntu?
0
Goodwin98
2521 / 817 / 10
Регистрация: 31.05.2009
Сообщений: 1,672
24.11.2009, 17:00 #13
Kidalvь, Убунту в смысле компилирования программ несильно вроде отличается от других сборок.
Т.е. в нем должны работать обычный gas (AT&T синтаксис) и nasm(интел синтаксис). И линковщик ld.
2
24.11.2009, 17:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2009, 17:00

Как скомпилировать файл
Подскажите пожалуйста возможно ли скомпилировать данный файл. Проблема в том,...

Как и чем скомпилировать?
Чем скомпилировать exe файл этой программы? cseg segment assume cs:cseg,...

Как скомпилировать архиватор?
помогите скомпилировать winrk.exe c параметром IMAGE_FILE_LARGE_ADDRESS_AWARE c...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru