Взрослая социальная сеть
Текстовая версия форума
Знакомства для секса Регистрация


Вопросы по ассемблеру

Текстовая версия форума: Архив компьютерного форума



Полная версия топика:
Вопросы по ассемблеру -> Архив компьютерного форума


Страницы: [1]

Decemberunderground
.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
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
Собственно, это пример из учебника по асму под вин32.
Там дальше всё объяснено: "Чуть-чуть не забыл рассказать, как надо компилировать программы. Для этого вам надо написать текст программы на ассемблере и сохранить в файл с расширением *.asm. Потом надо ассемблировать его." smile.gif
Автор приводит пример имея в виду TASM32. Есть ещё MASM и FASM, у каждого свои особенности.
maxdiversexnarod1
А в чём тогда состоит вопрос? Качать TASM и компилить как написано в книге.
Decemberunderground
Сорри не дочитал чуть-чуть. Кстати не дадите ссылку на этот самый Tasm32.
maxdiversexnarod1
Decemberunderground
Ну блин в интернете до фига ссылок же.
Ладно, вот ссылка с одного хорошего сайта:
WASM
(рекомендую сайт, если серьёзно заинтересуешься низкоуровневым программированием)
Decemberunderground
Ну блин одолжений делать не надо, но всё равно спасибо.
maxdiversexnarod1
Просто гугль на запрос "tasm32 download OR скачать" выдаёт 1 740 ссылок. Всё-таки есть из чего выбрать wink.gif
c0d3r
качаем MASM32+RadAsm, читаем туторы на васме и радуемся :)
alexxisr
народ, а зачем вообще нужен ассемблер?
сегодняшние оптимизаторы сделают все лучше и быстрее.
а если реально нужно использовать специфичные команды проца - можно юзать ассемблерные вставки в C или pascal.
do-do
QUOTE (alexxisr @ 07.11.2007 - время: 07:55)

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

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

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

а собственно программировать лучше на высокоуровневых.
они позволяют не думать о рутинных операциях.
do-do
про иерархию языков надо Таненбаума почитать :) Так и под Виндой пишут на С :) Но опять же аппаратно ориентированные вещи - приходится на ассемблере хоть там хоть там
contravene
Сейчас в индустрии программирования стока новых технологий (взять тот-же самый 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
помню, увидел на коробке с visual studio надпись -
"на 99% совместима со стандартом"
желание писать на заведомо неправильном языке пропало

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

Страницы: [1]

Архив компьютерного форума -> Вопросы по ассемблеру





Проститутки Киева | индивидуалки Москвы | Эротический массаж в Москве | Проститутки-индивидуалки Москва