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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2012, 09:38   #1
Rroma
 
Регистрация: 26.05.2012
Сообщений: 6
По умолчанию Уважаемые эксперты что делаю не так ?

Уважаемые эксперты что делаю не так ? Не судите строго. Хочу понять как работает программа,но не получается. Код программы в эмуляторе 8086 проходит нормально (ну хотел пошагово посмотреть как делается) а как начинаю делать в Masm32 ошибка и ошибка. Заколебался.. Что я неправильно сделал.? Прилагаю код asm и bat

код asm

.386

.model flat, stdcall
option casemap :none

include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\masm32.inc
include \MASM32\INCLUDE\gdi32.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\masm32.lib
includelib \MASM32\LIB\gdi32.lib
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib
.code
start:
org 100h

Begin:
mov si, exit
mov al, 9
sub ah, ah
nop
mov ah,145
dec ah
ror al,4
stosw
push si
pop sp
push ax
cli
hlt
int 20h
exit:
mov ah, 9
mov dh, msg1
int 21h
mov ah, 10h
int 16h
int 20h

msg1 db 'Привет! $'
end start
ret



код bat

rem *********** Начало файла makeit.bat ***************
\masm32\bin\Ml.exe /c /coff emu.asm
\masm32\bin\Link.exe /SUBSYSTEM:WINDOWS emu.obj
del *.obj
rem *********** Конец файла makeit.bat **
Rroma вне форума Ответить с цитированием
Старый 26.05.2012, 10:25   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Первое на что ругнулся ассемблер - это на строку:
Код:
mov si, exit
Говорит, что операторы инструкции должны быть одинакового размера.
8Observer8 вне форума Ответить с цитированием
Старый 26.05.2012, 10:34   #3
Rroma
 
Регистрация: 26.05.2012
Сообщений: 6
По умолчанию

не понял. Это exit ведь тоже 16 бит. Какая разница. Или что то не то пишу.
Rroma вне форума Ответить с цитированием
Старый 26.05.2012, 11:02   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

А что по вашей версии должна делать данная программа?)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 26.05.2012, 11:15   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
/coff
а если удалить ссылки на библиотеки и заменить данный ключ на
Код:
 /omf
?

если не знаете, какие ключи передавать, то почитайте здесь: http://bitfry.narod.ru/ml.htm
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 26.05.2012, 12:04   #6
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Rroma, для 16-битного кода батник вот такой пробуйте:
Код:
ml /c %*.asm
link16 /t %*.obj;
del %*.obj
А код нормальный напишите. То, что Вы показали, кодом назвать сложно.
vadimych вне форума Ответить с цитированием
Старый 26.05.2012, 12:15   #7
Rroma
 
Регистрация: 26.05.2012
Сообщений: 6
По умолчанию

Извините пожайлуйста. тогда хоть посоветуйте что нибудь. Мне нужно чтоб эти команды использовались.
Rroma вне форума Ответить с цитированием
Старый 26.05.2012, 12:19   #8
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Rroma, Вы бы задание озвучили своё.
vadimych вне форума Ответить с цитированием
Старый 26.05.2012, 12:24   #9
Rroma
 
Регистрация: 26.05.2012
Сообщений: 6
По умолчанию

мне нужно написать любую программу с использованием команд:
nop, jo , sub , ror , dec. Вроде бы все просто ! ан нет не получается. Хотелось бы самому решить проблему - но не могу, поэтому обращаюсь сюда...
Rroma вне форума Ответить с цитированием
Старый 26.05.2012, 12:49   #10
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Rroma, вот шаблон, команды свои самостоятельно впишите.

Код:
.model tiny
.code
org 100h
start:

............................; Ваши команды

ret
end start
vadimych вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что не так я делаю? volha_alina Паскаль, Turbo Pascal, PascalABC.NET 2 23.05.2012 13:05
Что я делаю не так rj-45 Microsoft Office Excel 7 22.11.2011 10:21
Что не так делаю? L6go1as Общие вопросы C/C++ 5 28.10.2011 07:54