The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"asm for C"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"asm for C"  +/
Сообщение от redd email on 13-Апр-18, 18:15 
Не могу передать переменную в asm вставку ...
int X;


void putChar()
             {
              asm { mov al,X;}
              }

Выдает ошибку, ...
invalid combination of opcode and и т д ...


И еще asm { push 0b800h;}
Тоже выдаёт ошибку ...
instruction not enable (((

Ответить | Правка | Cообщить модератору

Оглавление

  • asm for C, PereresusNeVlezaetBuggy, 18:36 , 13-Апр-18, (1) +1  
    • asm for C, redd, 18:52 , 13-Апр-18, (2) –1  
    • asm for C, redd, 19:09 , 13-Апр-18, (3)  
      • asm for C, PereresusNeVlezaetBuggy, 19:28 , 13-Апр-18, (4) +1  
        • asm for C, redd, 19:51 , 13-Апр-18, (5)  
        • asm for C, redd, 19:55 , 13-Апр-18, (6)  
        • asm for C, redd, 20:05 , 13-Апр-18, (7)  

Сообщения по теме [Сортировка по ответам | RSS]

1. "asm for C"  +1 +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 13-Апр-18, 18:36 
>[оверквотинг удален]
>  {
>            
>   asm { mov al,X;}
>            
>   }
> Выдает ошибку, ...
> invalid combination of opcode and и т д ...
> И еще asm { push 0b800h;}
> Тоже выдаёт ошибку ...
> instruction not enable (((

asm-синтаксис не стандартизирован, так что для начала неплохо было бы назвать точно компилятор.

А затем можно таки взять в руки гуглю и... «inline asm КОМПИЛЯТОР syntax»

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "asm for C"  –1 +/
Сообщение от redd email on 13-Апр-18, 18:52 
Тольки не ругайтесь, компилятор у меня пока Turbo C 3.2 for dos ...
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "asm for C"  +/
Сообщение от redd email on 13-Апр-18, 19:09 
Ё maё, это Ваше «inline asm КОМПИЛЯТОР syntax» помогло ... Спасибки
Переменные передались в asm вставку на ура.

А вод asm{push 0b800h;} пока никак, ...

А можно допустим заменить
  push 0b800h  
  pop es

На вот это
mov ax,0b800h
push ax
pop es

А ? так компилятор воспринимает,

В любом случае пойду читать мануал ...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "asm for C"  +1 +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 13-Апр-18, 19:28 
> А вод asm{push 0b800h;} пока никак, ...
> А можно допустим заменить
>   push 0b800h
>   pop es
> На вот это
> mov ax,0b800h
> push ax
> pop es

Почему бы и нет? Если, конечно, вам не надо каждый такт считать.

Насколько я понял, 8086, в отличие от последующих моделей, не умел напрямую делать push константы:

http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/tur... , страница 149

Поэтому, возможно, есть какие-то опции для компилятора, с помощью которых можно включить режим совместимости с 80186 или выше. Но это если моя догадка в целом верна.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "asm for C"  +/
Сообщение от redd email on 13-Апр-18, 19:51 
Да пока такты считать не нужно, интересует запись в неактивную страницу видеопамяти , а именно в 1.
Потом переключение её в активную, потом запись в нулевую, и.т.д. ...


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "asm for C"  +/
Сообщение от redd email on 13-Апр-18, 19:55 
За мануал спасибо, буду читать, до просветления ...
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "asm for C"  +/
Сообщение от redd email on 13-Апр-18, 20:05 
Вроде заработало, но выводит только в самый верхний левый пиксель,
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "asm for C"  +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 13-Апр-18, 20:22 
> Вроде заработало, но выводит только в самый верхний левый пиксель,

Это уже отдельный разговор.

Я бы посоветовал вам, на самом деле, сделать публичный репозиторий с программой на любом современном хостинге с pull-запросами. Тогда и вопрос «покажи код» будет решаться проще, и изменения будет проще предлагать. Но это, конечно, если исходная лицензия позволяет.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "asm for C"  +/
Сообщение от redd email on 14-Апр-18, 07:18 
Да какая лицензия, скажете тоже ...
А подскажите где лучше разместить ?

А программа то примитивная ..., вот
Могу прям тут выложить ..., если можно, там строк 400 всего
https://youtu.be/elrfOh1zpN4

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру