Asembler w BC++ 3.1

0

Witam. Mam stary kompilatorek BC++ 3.1 pod dosa i tam chce zrobic wstawke asemblerowa:

asm
{
    mov ax,0x13
    int 0x10
}

Kompilator wyrzuca blad ze nie wiem co to "mov", poza tym int traktuje jako deklaracja typu - jakim slowem to zamienic? - iret or sth?
Co robie zle?

0
asm {
  mov ax,0x13
  int 0x10
}
0

asm mov ax,0x13
asm int 0x10

0

Nic z tego nie dziala, moze napisze ta funkcje w calosci (jest niesamowicie skomplikowana :) :

void graf(char tryb=0x3)
{
    asm
    {
        mov ax,tryb
        int 0x10
    }
}

Cepa: jak zrobie tak ja ty polecasz to wychodzi blad: "invalid opcode operands"

0

Ok, zwracam honor chlopaki, dziala jak mowicie.
Cepa: wystarczylo ze zmienilem typ parametru funkcji z char na unsigned (przeciez char to 1 bajt a ax ma 2 bajty)

Jak sie deklaruje etykiete w takiej wstawce:

SKOK:
    jakies instr...
    jmp SKOK
    ...
0

Musisz zadeklarować etykietę poza wstawką np.:

<cpp> int main(void) { clrscr(); char c = getch(); asm { cmp c, 'a' je OK } printf("Błąd"); goto EXIT; OK: printf("OK"); EXIT: getch(); return 0; }

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0