Página 1 de 1

Fazedo mix com Assembly

Enviado: 14 Jan 2013 09:18
por bencz
Olá, um bom dia a todos :)
Apos muito tempo sem programar em xBase(harbour... ), voltei a programar :), e eu nao lembrava mais de como era gostoso programar em xharbour... :)

mas enfim, gostaria de saber, como posso fazer o mix entre xharbour e assembly, pois bem, estou utilizando o Visual xHarbour ( o pago ) e o compilador de C q ele usa é o xCC ( acredito que seja esse ( EU ACHO!!! ) http://www.xmos.com/ ) e eu estava procurando por uma documentação para fazer um mix com assembly ( http://www.xmos.com/inline-assembly ) mas, pude notar, que o assembly que ele usa tem 3 instruções ( arm talvez )... então, gostaria de saber, como posso fazer esse mix ?

Pois bem, oq pensei exatamente era:

Código: Selecionar todos

function main()
  ? cStr(FNC_TESTE(10, 10))
return nil

#pragma BEGINDUMP
#include "hbapi.h"
   
HB_FUNC( FNC_TESTE )
{
  int retValue = 0;
  int a = hb_parni(1);
  int b = hb_parni(2);
  asm
  {
    MOV AX, OFFSET a
    MOV BX, OFFSET b
    ADD AX, BX  
    MOV OFFSET retValue, AX 
  }
  hb_retni(retValue);
}
#pragma ENDDUMP
bom, é claro, usando a sintaxe do Borland, o Assembly ficaria assim... mas, utilizando a sintaxe do assembly do xCC, alguem sabe como ficaria, ou, alguem sabe uma outra solução ?

Grato
Alexadre

edit:
Alterei o código do exemplo, e acabei de testar ele, e fuciona perfeitamente... :)
utilizando o TASM e o Borland