Code: format PE GUI 4.0 entry _start section '.code' code readable executable import writeable _start: mov eax,5 add eax,4 FASM. =) переходи на него, он лучший.
diznt Создай файл с расширением bat со следующим кодом и запусти его Code: ;@echo off ;goto make .386 .model flat,stdcall option casemap: none .code start: mov eax, 2 add eax, 3 ret end start :make \masm32\bin\ml /c /Cp /coff proj1.bat \masm32\bin\link /subsystem:windows proj1.obj del proj1.obj echo. pause
Создал, пишет это Code: Microsoft (R) Macro Assembler Version 6.14.8444 Copyright (C) Microsoft Corp 1981-1997. All rights reserved. Assembling: proj1.bat MASM : fatal error A1000: cannot open file : proj1.bat Microsoft (R) Incremental Linker Version 5.12.8078 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. LINK : fatal error LNK1181: cannot open input file "proj1.obj" Не удается найти D:\masm32\bin\proj1.obj Для продолжения нажмите любую клавишу . . .
Незнаю, из-за чего проблема, но может переустановка MASM'а, поможет или же перерегестрация переменных окружения
MASM32\BIN\Ml.exe /c /coff test.asm MASM32\BIN\Link.exe /SUBSYSTEM:WINDOWS test.obj а вобще посмотри в примерах всякие батники для компиляции.
2 t1to click'z ещё мб вариант компиляции bat. если Code: @echo off if exist %1.obj del %1.obj где 1.название сохряняемого файла,то попробуй сохранить именно под 1, т.к. изначально настройки батника идут такие. zeppe1in,прав смотри батники для компл.
Кхм, а гугл на что? "masm32 как там компилировать код" > http://www.hack-info.ru/showthread.php?t=26661 Сам лично не юзал (либо слишком кратковременно). Из ассемблеров в основном работал в эмуляторе, юзал встроенный в С/Delphi, и недавно пришлось поюзать fasm. У него в комплекте относительно удобная средa разработки идёт. По крайней мере, кнопочка "Compile" там есть
Люди( а мб и нелюди ) помогите с подготовкой к экзамену сижу уже третий день читаю книги выучил вродь все билеты, не могу разобратся с "плоской памятью" что за херь и с чем ее едят. только на пальцах а не компьтерным языком ) т.к что то очень замутно...
ну что что это просто придумали программисты что у тебя не сектора разные типа сектор данных сектор кода а все это расплющено в памяти на протяжении 4 гигабайт ) че хочешь и пихай все плоооско и пофиг как бы )) но на самом деле это не так ))) (но это тебе знать не надо за это винда отвечает)
во во да это то самое я к преподу подошел он говорит тима каждая прога считает что ей 4 памяти дают, на самом деле это нет так, вот надо сказать про эту фигню поподробнее))
В википедии есть определение. Также нашёл инфу по ссылке: http://mf.grsu.by/UchProc/livak/kursi/po/lections/le... Там написано: Если считать, что задача состоит из одного сегмента, который, в свою очередь, разбит на страницы, то фактически мы получаем только один страничный механизм работы с виртуальной памятью. Это подход называется плоской памятью. Чем оно отличается от страничной памяти - не ясно. Плоская память, это (наверное) - не сегментно-страничная. Т.к. сегментно-страничная трёхмерная: номер сегмента, номер страницы, смещение относительно начала страницы
про эту страничную херь читал нихера не понял )) т.к незнаю даже что это за страничная фиготень)) вообще полнейшая опа
а вот кстати еще вопросик, модификация адресов, тут про что рассказывать )) только щас заметил этот вопрос
С памятью всё доволно просто. Приведу аналогии с массивами: Пускай у тебя есть линейный массив от 1 до n - это и будет линейная память. Если массив двумерный - страничная или сегментная (физически они будут расположены всё-равно в одну строку, т.е. следовать друг за другом, однако адресация для программиста становится двумерной) Трёхмерный - сегмент, страница, смещение.
спасибо за помощь незнаю как такой дуб как я сдал на 4, вообщем экзамен комплитед )) про модификацию надо было вообщем рассказать про "lea" и регистры модификаторы, ну еще что то я не стал уточнять
Привет всем. Изучаю асм (компилятор fasm), буду иногда задавать здесь ламерские вопросы Итак 1 из них: Допустим есть ip. Нужно его обработать функцией inet_addr: invoke inet_addr, ip_addr Как теперь результат поместить в другую переменную? mov [ip], eax не получается - компилятор говорит, что размеры приемника и источника не совпадают. как я понял в таких случаях переменную ip нужно задавать так: ip dd ? правильно?