Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

inline assembler

[es] :: C/C++ programiranje :: inline assembler

[ Pregleda: 2534 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladobk
penzija
Loznica

Član broj: 27081
Poruke: 389
*.inffo.net.

Sajt: www.melting.rs/bk


Profil

icon inline assembler18.04.2010. u 18:09 - pre 170 meseci
nasao sam sledeci kod na netu i prepisao u devcpp
#include <iostream.h>
int main()
{
asm("in %al,61");
asm("and %al,252");
asm("out 61,%al");
}
izbacuje gresku
Error suffix or operands invalid for `in'
Error suffix or operands invalid for `out'
kako se ubacuje inline asm u devcpp
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
200.49.157.*

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: inline assembler19.04.2010. u 18:41 - pre 170 meseci
http://www.google.com/search?q=mingw+inline+assembler
Tko leti vrijedi
 
Odgovor na temu

vladobk
penzija
Loznica

Član broj: 27081
Poruke: 389
*.inffo.net.

Sajt: www.melting.rs/bk


Profil

icon Re: inline assembler20.04.2010. u 17:00 - pre 170 meseci
#include <stdio.h>

int main() {
/* Add 10 and 20 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"addl %ebx, %eax;"
);


return 0 ;
}
ovo radi sintaxa izgleda zavisi od procesora

http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx
evo ib dobrog linka

[Ovu poruku je menjao vladobk dana 20.04.2010. u 18:13 GMT+1]

[Ovu poruku je menjao vladobk dana 20.04.2010. u 18:17 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

vladobk
penzija
Loznica

Član broj: 27081
Poruke: 389
*.vdial.verat.net.

Sajt: www.melting.rs/bk


Profil

icon Re: inline assembler21.04.2010. u 18:17 - pre 170 meseci
#include <iostream>
#include <stdlib.h>

using namespace std;

int main() {
/* Add 10 and 20 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"addl %ebx, %eax;"
);

__asm__("in %al,61");


system("PAUSE");
return 0;

error sufix or operand for in
gornji deo koda radi iznad in komande isto je i za out komandu
ova in i out komanda nece ni u devcpp ni u makroassembleru , u makroasembleeru ne prijavi gresku prilikom komajliranja ali kada startujem exe prijavi ovo


kako da zatvorim port iili sta?
evo i kod u makroaasm

.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.data
MsgBoxCaption db "Iczelion Tutorial No.2",0
MsgBoxText db "pozdrav vladobk!",0
.code
start:

mov dx,0378h
mov ax,5
out dx,ax

invoke MessageBox,NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
invoke ExitProcess,NULL
end start
ovaj asm cod mi je nekad radio u delphi1


[Ovu poruku je menjao vladobk dana 21.04.2010. u 19:28 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

RF MasterX
RS

Član broj: 258871
Poruke: 197

Sajt: www


+16 Profil

icon Re: inline assembler13.05.2010. u 23:34 - pre 169 meseci
Oho ho, pa to ti se zove "Privileged instruction"

Upisivanje ili citanje sa I/O porta u takvom obliku je moguce ali samo u:

DoS, Win 3.11, Win 95, Win 98 i Win Me.

U Windows-ima NT tipa kao sto su:

WinNT 4, Win2000, WinXP, Vista, Win7 takve

"Egzibicije" nisu moguce i zato ti izbacuje gresku.

Za ove nove tipove sistema to je moguce ali ako napravis Driver,
pa ukoliko te to bas i ne interesuje bolje batali jer je pisanje
drajvera veoma ozbiljan posao.

A to oko tog stila pisanja, pa moze i jednostavnije:

Code:

#include <iostream.h>
#include <stdlib.h>

int main()
{

_asm{
IN      AL, 61 
AND   AL, 252 
OUT   61, AL
};

}


 
Odgovor na temu

[es] :: C/C++ programiranje :: inline assembler

[ Pregleda: 2534 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.