Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Dead_Messiah
 Аватар для Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 125
Завершенные тесты: 1
#1

32-битные регистры в Borland C++ - C++

14.10.2012, 01:25. Просмотров 1120. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток!
Хочу сделать программу для проигрывания мелодии через системный динамик, и решил попробовать сделать это с помощью ассемблерной вставки. Вроде бы, сделал, но не знаю или верно, ибо при компиляции Borland c++ ругается на регистр eax и т.д. (не распознаёт), хотя в настройках компиляции я включил инструкции i386. Вот выкладываю код, не ругайте сильно, если будут ошибки (а думаю, что они будут) - я учусь

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <conio.h>
#include <stdio.h>
#include <dos.h>
 
void main()
{   int i,j,x,y,cnt;
    cnt=1193180L/65535;
    float freq[]={267.7, 440.0, 293.7, 267.7, 440.0, 329.6, 267.7, 440.0, 370.0};
    float delay[]={1.3, 1.5, 3, 1.3, 1.5, 3, 1.3, 1.5, 3};
    while (!kbhit())
    {
 
for (i=0; i<10; i++)
{
      x=freq[i];
    asm mov ecx,x
      
}
for (j=0; j<10; j++)
{
    y=delay[j];
    
}
    }
    
asm  mov eax, cnt 
asm  sub dx, dx
asm  div ecx 
asm  mov ecx, eax
asm  mov al,0b6H
asm  out 43H,al 
asm  mov al,cl
asm  out 42h,al 
asm  mov al,ch
asm  out 42h,al 
asm  in al,61H
asm  or al,03H
asm  out 61H,al 
    
delay(y); 
asm  in al,61H
asm  and al,0fcH
asm  out 61H,al
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 01:25     32-битные регистры в Borland C++
Посмотрите здесь:

C++ [C++] 24-битные BMP
C++ Разделить содержимое файла на 64 битные блоки
C++ Builder Как лучше перенести 16 битные данные из текста в пиксели на канву?
C++ Встроенный asm и 64-битные регистры
64-х и 32-х битные системы C++
16-битные числа C++
Битные маски C++
А есть ли 64-х битные версии функций WriteFile и ReadFie? C++ WinAPI
64 битные типы данных в devC++ C++
Регистры, сдвиги и массивы C++
Не срабатывает инжект в 64-битные процессы C++ WinAPI
Как преобразовать текст на 64-битные блоки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cactus09
Чайник
 Аватар для cactus09
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
25.11.2012, 21:05     32-битные регистры в Borland C++ #2
И правильно делает что ругается

Вообще то должно быть так
C++
1
2
3
4
5
6
7
...
//Код на С++
_asm{
//Код на ассамблере 
}
//Код на С++
...
Dead_Messiah
 Аватар для Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 125
Завершенные тесты: 1
26.11.2012, 13:19  [ТС]     32-битные регистры в Borland C++ #3
Разницы между моей формой записи асм. вставки и Вашей - никакой.

PS: Тема более неактуальна.
Yandex
Объявления
26.11.2012, 13:19     32-битные регистры в Borland C++
Ответ Создать тему
Опции темы

Текущее время: 11:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru