Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание 16-битных приложений на ASM, в Visual Studio 2005 (winXP) 
:(
    Опции темы
Kuvaldis
Дата 14.3.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: нет
Всего: 61



Ребята, если тема уже поднималась, то извините (не нашел)
Проблема в следующем. Нам в универе начали преподавать АСМ, причем делают это по книге Кип Ирвин "Ассмеблер для процессоров INTEL".  В одной из глав дается модуль следующего содержания
Код

TITLE Add and Subtract              (16-bit.asm)

; This program adds and subtracts 32-bit integers.
; Last update: 06/01/2006

INCLUDE Irvine16.inc

.code
main PROC
    mov    ax,@data
    mov    ds,ax

    mov    eax,10000h        ; EAX = 10000h
    add    eax,40000h        ; EAX = 50000h
    sub    eax,20000h        ; EAX = 30000h
    call    DumpRegs

    exit
main ENDP
END main

У меня не получилсь его запустить именно из-за 16-битного режима (в 32-битном все работает). Либы авторские все есть и подключены. Полез на сайт автора, но... объяснение, что делать показано не полностью (только шапка рисунков) воть
Был бы очень благодарен, если бы сказали, что там было показано

И вообще, это нормально, что asm-программы пишутся в студии? (честно говоря, кое-как овладел только tasm-ом, остальные IDE почему-то у меня работать не стали... :()


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
piritus
Дата 14.3.2007, 19:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 226
Регистрация: 3.1.2007
Где: Сибирь

Репутация: нет
Всего: 3



Цитата

что делать показано не полностью (только шапка рисунков) воть


что там за извращение?
это разве ассемблер:
Код

    call Clrscr

    mov  edx,OFFSET myMessage
    call WriteString

?
чушь полнейшая
--------------------
PM MAIL ICQ   Вверх
Sartorius
Дата 14.3.2007, 19:22 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



piritus, и что же тебе здесь не нравиться?

Цитата

У меня не получилсь его запустить именно из-за 16-битного режима (в 32-битном все работает). 


 А что в 16 битном не получается?  Скомпилировать, слинковать или выполнить? 

Это сообщение отредактировал(а) Sartorius - 14.3.2007, 19:23
PM MAIL ICQ   Вверх
Kuvaldis
Дата 14.3.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: нет
Всего: 61



Sartorius, 
Цитата

 А что в 16 битном не получается?  Скомпилировать, слинковать или выполнить? 

Компиляция проходит без вопросов
Ошибка при линковке. Есть у меня подозрение, что link.exe (который 32-битный) тут не подходит (ну очень мне кажется). Поэтому скачал link16.exe и закинул в masm32 ver.8
Ошибок 2:
1. undefined symbol DGROUP
2. A tool returned an error code from "Assembling..."

Если бы не статья, на которую я ссылку дал, я бы подумал , что создание 16-битных приложений из masm невозможно в студии, но...
Или я уже совсем мозги отбил?


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Sartorius
Дата 14.3.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Цитата

Есть у меня подозрение, что link.exe (который 32-битный) тут не подходит (ну очень мне кажется)


Кажется совершенно правильно  smile  Откопай где нить 16-битный линкер. tlink.exe или еще какой нить и собирай.
PM MAIL ICQ   Вверх
Kuvaldis
Дата 14.3.2007, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: нет
Всего: 61



Sartorius, 
В ссылке, которую я дал, есть раздел с порезанными фотками
Цитата

Building 16-bit Applications (Chapters 12-16)

Там и показано, что нужно сделать. Похоже, что дело в настройках именно студии
А 16-битный линкер я уже скачал и закинул к масм-у...


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Tectoder
Дата 14.3.2007, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: нет
Всего: 8



Я в этом мало шарю, но разве в 16-разрядном процессоре есть регистр eax?(он используется в коде)
PM   Вверх
MAKCim
Дата 14.3.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Цитата(Tectoder @  14.3.2007,  23:17 Найти цитируемый пост)
Я в этом мало шарю, но разве в 16-разрядном процессоре есть регистр eax?(он используется в коде) 

будет сгенерирована машинная инструкция с префиксом 66h (префикс изменения разрядности операнда)
коды операций многих команд содержат бит W, который определяет размерность операндов: 8 или 16/32 бита
без 66h в 32-разрядном режиме (PM) с установленым битом W команда работает с 32-битными операндами
с префиксом - с 16-битными операндами
без 66h в 16-разрядном режиме (RM) с установленым битом W - с 16-битными операндами
с префиксом - с 32-битными операндами


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.