1) unsigned char byte 18;
2)scan=inportb(0x60);
3) byte17=peekb(0x40,0x17);
4)old=getvect(9);
5)mov a,ch;
6)mov x,cx;
7) case 5:printf( "IRQ 5 ");break;
Другие языки программирования и технологии
Объясните команды Си/ассемблер
1) unsigned char byte 18;
Ошибка синтаксиса
2)scan=inportb(0x60);
в переменную scan возвращается значение функции (скорее всего чтение порта)
3) byte17=peekb(0x40,0x17);
макрос чтения по прямому адресу памяти
4)old=getvect(9);
в переменную old возвращается значение функции (скорее всего пользовательская функция)
5)mov a,ch;
6)mov x,cx;
скорее всего a и x переменные, в которые заносится значения регистров ch и cx
7) case 5:printf( "IRQ 5 ");break;
метка оператора switch при равенстве 5 выполняются printf( "IRQ 5 "); и break; (выход из оператора switch)
Ошибка синтаксиса
2)scan=inportb(0x60);
в переменную scan возвращается значение функции (скорее всего чтение порта)
3) byte17=peekb(0x40,0x17);
макрос чтения по прямому адресу памяти
4)old=getvect(9);
в переменную old возвращается значение функции (скорее всего пользовательская функция)
5)mov a,ch;
6)mov x,cx;
скорее всего a и x переменные, в которые заносится значения регистров ch и cx
7) case 5:printf( "IRQ 5 ");break;
метка оператора switch при равенстве 5 выполняются printf( "IRQ 5 "); и break; (выход из оператора switch)
Синтаксис старого Borland/Turbo C/C++, MSDOS
Чуть подправлю и добавлю.
1 - Ересь =) Если byte18 слитно, то не ересь - а описана перменная byte18 как беззнаковый символ =)
(есть подозрение т. к. ниже есть переменная byte17)
2 - inportb(0x60) - функция считывает данные из порта 60h (клавиатура) и записывает в scan
3 - peekb(0x40,0x17) фукнция читает данные из памяти с сегментом 40h, и смещением 17h - там хранится состояние доп. клавиш (shift, alt)
4 - getvect(9) берет адрес старого вектора (обработчика) прерывания 09h (клавиатура) и записывает в указатель old.
5 - a = ch (верхней части регистра cx)
6 - x = cx (регистру cx)
7 - если в switch (который описан выше) сработает условие, при котором значение = 5 - выведется надпись IRQ5.
Чуть подправлю и добавлю.
1 - Ересь =) Если byte18 слитно, то не ересь - а описана перменная byte18 как беззнаковый символ =)
(есть подозрение т. к. ниже есть переменная byte17)
2 - inportb(0x60) - функция считывает данные из порта 60h (клавиатура) и записывает в scan
3 - peekb(0x40,0x17) фукнция читает данные из памяти с сегментом 40h, и смещением 17h - там хранится состояние доп. клавиш (shift, alt)
4 - getvect(9) берет адрес старого вектора (обработчика) прерывания 09h (клавиатура) и записывает в указатель old.
5 - a = ch (верхней части регистра cx)
6 - x = cx (регистру cx)
7 - если в switch (который описан выше) сработает условие, при котором значение = 5 - выведется надпись IRQ5.
Андрей Сапунов
inportb, peekb, getvect - стандартные функции в стареньком Borland/Turbo C.
Похожие вопросы
- Какие преимущества сохранил Ассемблер к Си?
- Выполнение команд ассемблера в МП
- С помощью команд fpu вычислить площадь круга, исходя из введѐнного диаметра. Ассемблер...
- Сравнение языка Ассемблера и Си
- Что может ассемблер?
- Почему многие программисты ненавидят ассемблер?Ведь у него куча плюсов!Он позволяет максимально задействовать
- Что лучше ассемблер или Си ??
- что выбрать Ассемблер или С++? Знаком с Бейсиком, когдат начинал писать в маш. кодах для 8-битного проца, с Си не знаком
- Для программирования микроконтролеров кроме знания ассемблера или Си нужны знания радиоэлектроники?
- Народ, помогите, по вопросу языка СИ, команды fgets!
http://pastebin.com/KhXJDAWS
на строке 71
http://joxi.ru/D2P0oLgiEEJk23