Closed TopicStart new topicStart Poll

Страницы: (1) 1 
Decemberunderground
дата: [ i ]
  • *
  • Новичок
  • Репутация: 4
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
.386
.model flat

extrn ExitProcess:PROC
extrn MessageBoxA:PROC

.data

Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World!!!!',0h

.code

start:
push 0h
push offset Msg
push offset Ttl
push 0h
call MessageBoxA
push 0h
call ExitProcess
end start


Через какую программу следует это запустить чтобы проц её понял?
И ещё модель проца 386, чего это значит?

maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
Decemberunderground

QUOTE
Через какую программу следует это запустить чтобы проц её понял?

Что значит "запустить"? Это текст программы, его можно откомпилировать в exe-файл wink.gif
Я так понял, тебе нужен компилятор асм'а. Ну тут выбирать, собственно, не из чего - только MASM32. Остальные по разным причинам значительно отстают от него.
Скачать его легко, он валяется в инете на каждом углу, размер - наверно около 4 МБ.

QUOTE
.386
.model flat

extrn ExitProcess:PROC
extrn MessageBoxA:PROC

.data

Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World!!!!',0h

.code

start:
push 0h
push offset Msg
push offset Ttl
push 0h
call MessageBoxA
push 0h
call ExitProcess
end start

Я не спец по разным диалектам ассемблера, но я бы эту программу переписал так, иначе MASM'ом не компилируется:

.386
.model flat, stdcall
option casemap: none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib


.data

Ttl db "First ASSEMBLER program",0h
Msg db 'Hello, World!!!!',0h

.code

start:
push 0h
push offset Msg
push offset Ttl
push 0h
call MessageBoxA
push 0h
call ExitProcess
end start

Как видишь, я подправил только "оформление" - заголовок, инклуды.
Можно было вместо этого исправить extern'ы, но там появится дополнительная сложность, которая, думаю, тебе ни к чему.

QUOTE
И ещё модель проца 386, чего это значит?

Это всего лишь означает, что в программе используются инструкции процессора только из набора проца 386. Т.е. программа будет работать на всех процах, начиная с 386.
В общем, всегда пиши 386 и не парься wink.gif
barrakuda
дата: [ i ]
  • *
  • Профессионал
  • Репутация: 69
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Собственно, это пример из учебника по асму под вин32.
Там дальше всё объяснено: "Чуть-чуть не забыл рассказать, как надо компилировать программы. Для этого вам надо написать текст программы на ассемблере и сохранить в файл с расширением *.asm. Потом надо ассемблировать его." smile.gif
Автор приводит пример имея в виду TASM32. Есть ещё MASM и FASM, у каждого свои особенности.
maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
А в чём тогда состоит вопрос? Качать TASM и компилить как написано в книге.
Decemberunderground
дата: [ i ]
  • *
  • Новичок
  • Репутация: 4
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Сорри не дочитал чуть-чуть. Кстати не дадите ссылку на этот самый Tasm32.

maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
Decemberunderground
Ну блин в интернете до фига ссылок же.
Ладно, вот ссылка с одного хорошего сайта:
WASM
(рекомендую сайт, если серьёзно заинтересуешься низкоуровневым программированием)
Decemberunderground
дата: [ i ]
  • *
  • Новичок
  • Репутация: 4
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Ну блин одолжений делать не надо, но всё равно спасибо.
maxdiversexnarod1
дата: [ i ]
  • *
  • Любитель
  • Репутация: 30
  • Статус:
  • Member OfflineМужчинаСвободен
Просто гугль на запрос "tasm32 download OR скачать" выдаёт 1 740 ссылок. Всё-таки есть из чего выбрать wink.gif
c0d3r
дата: [ i ]
  • *
  • Любитель
  • Репутация: 7
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
качаем MASM32+RadAsm, читаем туторы на васме и радуемся :)
alexxisr
дата: [ i ]
  • *
  • Интересующийся
  • Репутация: 15
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
народ, а зачем вообще нужен ассемблер?
сегодняшние оптимизаторы сделают все лучше и быстрее.
а если реально нужно использовать специфичные команды проца - можно юзать ассемблерные вставки в C или pascal.
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
QUOTE (alexxisr @ 07.11.2007 - время: 07:55)

сегодняшние оптимизаторы сделают все лучше и быстрее.

Мда...
Вообщем то низкоуровневые драйверы пишутся, покрайней мере, сбольшими вставками ассемблерного кода. это раз, ассемблер не так уж и труден - это два. Без знания ассемблера ТРУДНО исследовать ЧУЖУЮ прогу три :) Ну и четыре УТОЧНИ в какой области тебе ассемблер мешает
alexxisr
дата: [ i ]
  • *
  • Интересующийся
  • Репутация: 15
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
мне ассемблер не мешает.
в школе помню целиком игрушки на нем писал.
правда больше для понтов - типа я не только бейсик знаю.
драйвера под unix пишутся больше на С.
для иследования чужих программ гораздо приятнее почитать исходники с комментариями.

учиться программировать по-моему надо начинать именно с ассемблера.
только там приходит понимание что же происходит в компьютере.

а собственно программировать лучше на высокоуровневых.
они позволяют не думать о рутинных операциях.
do-do
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 349
  • Статус: Поболтаем?
  • Member OfflineМужчинаСвободен
про иерархию языков надо Таненбаума почитать :) Так и под Виндой пишут на С :) Но опять же аппаратно ориентированные вещи - приходится на ассемблере хоть там хоть там
contravene
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Сейчас в индустрии программирования стока новых технологий (взять тот-же самый framework 1.1/2.0/3.0/3.5), что изучение ассемблера все равно что, даже не знаю, изучение лука с каменными стрелами в армии вместа новейших типов автоматов и пулеметов.

Мой совет - если хочешь добиться успеха в программировании начинай с языков предложенных майкрософтом в Visual Studio (C#, Visual Basic, C++, J#) - плюс освой какую-нить технологию (ASP, MFC - в зависимости от того где хочешь профилировать) - на ассемблере будешь работать в час по чайной ложке да и почти ни где знание ассемблера не требуется.

Это сообщение отредактировал contravene - 28-11-2007 - 21:14
alexxisr
дата: [ i ]
  • *
  • Интересующийся
  • Репутация: 15
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
помню, увидел на коробке с visual studio надпись -
"на 99% совместима со стандартом"
желание писать на заведомо неправильном языке пропало

сайты на asp у меня очень часто не открываются оперой - видимо хотят что-то специфическое от IE
хотя может это просто мне так фатально не везет

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

Страницы: (1) 1

Closed TopicStart new topicStart Poll0


Рекомендуем почитать также топики:

странные глюки

Flashpoint

Luxor 2 уж очень подсел

помогите выбрать принтер

Помогите!!! сломался интегрированный в мать USB!!!



>