Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Ошибка в ассемблере   Найти похожие ветки 

 
sammy   (2002-04-28 11:21) [0]

получаю 4 ошибки в следующем коде
(ошибка типа invalid register combination)

function TForm1.GetComAvailable: byte; assembler;
const
BiosSeg = $0040;
DPMIInt = $31;
SegSel = $02;
Com1Off = 0;
Com2Off = 2;
Com3Off = 4;
Com4Off = 6;

asm
push es
mov ax,SegSel
mov bx,BiosSeg
int DPMIInt
mov dx,0
jc @Error
mov es,ax
mov di,0
cmp di,es:[di+Com4Off] //ошибка
rcl dx,1
cmp di,es:[di+Com3Off] //ошибка
rcl dx,1
cmp di,es:[di+Com2Off] //ошибка
rcl dx,1
cmp di,es:[di+Com1Off] //ошибка
rcl dx,1
@Error:
mov ax,dx
pop es
end;


 
sammy   (2002-04-28 11:42) [1]

если кто знает помогите пожалуста!
я асм еще не очень знаю!
Заранее спасибо


 
Vovchik ©   (2002-04-28 11:47) [2]

> cmp di,es:[di+Com4Off]

Вместо di он хочет 32-битный регистр, например edi. Попробуй везде поменять di на edi, может поможет.


 
Alx2 ©   (2002-04-29 10:35) [3]

Вот так попробуй:
cmp di,word ptr es:[di+Com4Off]


 
Alx2 ©   (2002-04-29 10:38) [4]

Вернее, так:
cmp di,word ptr es:[edi+Com4Off]


 
Anatoly Podgoretsky ©   (2002-04-29 10:47) [5]

Тут ошибок гораздо больше, но главная этот код для real mode, неприменим и не переделываемый под protected mode
Ты явно хочешь работать с ком портами, используй для этого WinApi


 
DarkGreen   (2002-04-29 13:52) [6]

2 Anatoly Podgoretsky ©
Зависит от конкретного компилятора, в BP 7.0 данный код будет работать, без каких либо исправлений (не считая комментариев), как в реальном, так и в защищенном режиме.



Страницы: 1 вся ветка

Текущий архив: 2002.05.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
4-39907
samos
2002-03-12 14:28
2002.05.13
IPHLPAPI.dll кто нибудь знает с чем ее едят....


1-39702
Serd_hhc
2002-04-29 15:52
2002.05.13
Удаление папки...


4-39911
VovanM
2002-03-11 18:01
2002.05.13
Отлов завершения програм.


1-39726
Vano1
2002-04-27 12:11
2002.05.13
Как сохранить документ в формате XLS?


6-39822
AlexRush
2002-02-28 18:14
2002.05.13
WinSock2 API - чтение данных из сокета