Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Старые песни о главном, вывод на печать значение регистра 
V
    Опции темы
compiler91
  Дата 23.9.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день!
Начал изучать ассемблер и столкнулся с отсутствием обилием различных вспомогательных текстов. Но так среди них и не смог найти ответ на вопрос о выводе регистра на печать под нужную ось/ассемблер. Помогите, пожалуйста, с нахождением решения.
Решения с прерыванием (int 21h) и с использованием макроса(?) print приводит к run-time error.
ассемблер: masm32; ось: Win XP;
собираю так:
Код

ml  /nologo /c /coff "%1.asm" 
link /nologo /SUBSYSTEM:CONSOLE /LIBPATH:%asm%\lib "%1.obj"

PM MAIL   Вверх
GoldFinch
Дата 23.9.2009, 22:25 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



compiler91, тебя гугл чтоле забанил?
PM MAIL ICQ   Вверх
compiler91
Дата 23.9.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

compiler91, тебя гугл чтоле забанил? 

Баяны у тебя не смешные.
"чтОЛЕ" - это о футболе?
PM MAIL   Вверх
GoldFinch
Дата 23.9.2009, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



compiler91, чем на форуме флудить, лучше бы шел код гуглил

а масм лучше удали и пиши на фасме
Код

include 'win32ax.inc'
include 'hll_simple.inc'

.code

proc Main
     local szMsgBuf[50]:BYTE

     mov eax,1337

     wsprintfA(szMsgBuf,"eax=%d", eax)
     MessageBoxA(0, szMsgBuf, "output", 0)

     ret
endp

.end Main


Добавлено через 6 минут и 21 секунду
алсо название темы должно соответствовать ее содержанию %)

Это сообщение отредактировал(а) GoldFinch - 23.9.2009, 22:43
PM MAIL ICQ   Вверх
Goodwin98
Дата 23.9.2009, 22:54 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: 4
Всего: 5



Масм тоже компилятор smile
Код

.386
.model flat,stdcall
option casemap:none
include \masm32\include\user32.inc
include \masm32\macros\macros.asm
includelib \masm32\lib\user32.lib

.data
buff db 50 DUP(?)
.code
start:
     mov eax,1337

    szText msg1,"eax=%d"
    szText msg2,"output"

     invoke wsprintfA,addr buff,addr msg1, eax
     invoke MessageBoxA,0, addr buff, addr msg2, 0
    ret

end start

тут еще пара способов

Это сообщение отредактировал(а) Goodwin98 - 23.9.2009, 22:56
PM MAIL ICQ   Вверх
compiler91
Дата 23.9.2009, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

алсо название темы должно соответствовать ее содержанию %)

Заголовок %)
Цитата

а масм лучше удали и пиши на фасме

Без комментариев.

update
Goodwin98, спасибо. Но мне бы под консольку.. Прошу прощения, что явно это не указал.

update2
Цитата

тут еще пара способов
спасибо, сейчас посмотрим..

Это сообщение отредактировал(а) compiler91 - 23.9.2009, 23:01
PM MAIL   Вверх
GoldFinch
Дата 23.9.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



compiler91, а в чем вообще проблема, под консоль переделать? какие АПИ вызывать не знаешь? в msdn посмотри
PM MAIL ICQ   Вверх
Goodwin98
Дата 23.9.2009, 23:06 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: 4
Всего: 5



Код

        mov esi, offset msg
output:
        cdq
        div ebx 
        add dl,'0' 
        push edx 
        inc ecx
        test eax,eax
        jnz output 
        
        mov edx,ecx 
@@:
        pop eax 
        mov [esi],al 
        inc esi     
        loop @b
        
        invoke WriteConsoleA, stdout, ADDR msg, edx, ADDR cWritten, 0


Это сообщение отредактировал(а) Goodwin98 - 23.9.2009, 23:08
PM MAIL ICQ   Вверх
GoldFinch
Дата 23.9.2009, 23:08 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Код

    invoke wsprintfA,addr buff,addr msg1, eax
    push 0
    push 0
    push eax
    push addr buff
    invoke GetStdHandle, -11
    push eax
    call WriteFile ; ??? не помню как оно в масме

PM MAIL ICQ   Вверх
compiler91
  Дата 24.9.2009, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

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

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


 




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


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

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