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

C++

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

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

14.10.2012, 01:25. Просмотров 1158. Ответов 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
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 01:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 32-битные регистры в Borland C++ (C++):

Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо. - C++ Builder
Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.

не могу запустить ехешник ,Borland 5 и Borland 6 - C++ Builder
вообщем написал прогу , писал в 6рке когда компилю ругается на Build MYBASE.h(348): E2451 Undefined symbol 'ofstream' ...

Как лучше перенести 16 битные данные из текста в пиксели на канву? - C++ Builder
Добрый день. Прошу совета, а может и помощи. Пишу простое с виду приложение. Исходные данные: есть BIN файл в котором содержатся...

Верхний и нижний регистры - C++ Builder
Помогите. Как сделать, чтобы в Edit1 текст был в верхнем регистре, независимо от того, как в него вводит текст пользователь, а в Edit2 тот...

Не срабатывает инжект в 64-битные процессы - C++ WinAPI
Написал dll которую хочу подгружать в другие процессы. ос win7 x64. dll 32битная. Когда пытаюсь заинжектить ее в свои проги (писаные на...

А есть ли 64-х битные версии функций WriteFile и ReadFie? - C++ WinAPI
Ну то есть ReadFile( _In_ HANDLE hFile, _Out_ LPVOID lpBuffer, _In_ uint64_t nNumberOfBytesToRead, ...

2
cactus09
Чайник
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
25.11.2012, 21:05 #2
И правильно делает что ругается

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

PS: Тема более неактуальна.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2012, 13:19
Привет! Вот еще темы с ответами:

Встроенный asm и 64-битные регистры - C++
Всем привет! Попробовал записать в 64-битный регистр ( R8 ) данные, на что студия ответила что не знает что это такое вообще. ...

Русские хелпы по Borland C++ 5.* и Borland C++ Bulder - C++
Подскажите где найти русские хелпы на Borland C++ 5.* и Borland C++ Bulder ...

64-х и 32-х битные системы - C++
Пишу в MSVS 2012 на Windows 8... интересует вопрос, почему программа не запускается на 32-х битных системах? Пишет данное приложение не...

[C++] 24-битные BMP - C++
Программа не хочет кодировать 24-битные BMP. Под кодированием я понимаю разбитие изображение на квадраты по 10 пикселей (в программе - по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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