-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Как загрузить в регистр CPU значения указателя

Вторник, 20 Апреля 2021 г. 20:05 + в цитатник
hd44780: Привет всем. Не знаю, куда правильно помещать тему - сюда или в раздел по ассемблеру.

Пишу функцию обработки изображения на си. Хочу написать на inline ассемблере (точнее надо, это принципиально, неважно).
Заготовка для функции:
    void RasterDithering(uint8_t* pPixels, uint32_t dwWidth, uint32_t dwHeight)
    {
    uint32_t dwOneVal = 1;
    uint32_t dwRevWidth;
    uint8_t *pPixelData;
    __asm
    {
    mov ebx, [pPixels] ; ebx: = указатель на пиксели
    test ebx, ebx ; Выход, если
    jz L10 ; указатель == 0
    mov [dwOneVal], 1
    mov ecx, [dwHeight] ; ecx: = высота картинки
    mov eax, [dwRowBytes] ; eax: = длина строки
    dec ecx ; ecx: = высота - 1
    mul ecx ; edx:eax: = eax * ecx
    add ebx, eax ; ebx == pPixelData - указатель на последнюю
    mov [pPixelData], ebx ; строку изображения
    ........................
    // lea ecx, [pPixelData] ; ecx = pPixelData; // указатель на последнюю строку изображения
    // mov ecx, [pPixelData] ; ecx = pPixelData; // указатель на последнюю строку изображения
    mov ecx, pPixelData ; ecx = pPixelData; // указатель на последнюю строку изображения


Все команды до mov [pPixelData], ebx включительно работают нормально и правильно. Надо загнать значение указателя pPixelData в ecx. Да, в данном месте можно сделать mov ecx, ebx и забыть, но после mov [pPixelData], ebx есть масса других команд. Поэтому грузить надо из [pPixelData].

Проблема такая:
Любая из 3 последних команд под отладкой дают ошибку - см скрин.
Как сделать правильно?

Почему mov ebx, [pPixels] вверху работает, а внизу такой же mov ecx, [pPixelData] валится?

спасибо.
____________________.png (, : 23)

https://forum.sources.ru/index.php?showtopic=421354&view=findpost&p=3846582

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку