Disculpad mi ignorancia, pero tengo otra duda. He estado investigando sobre cómo incluir ASM in line en C, con gcc. Tengo el código en ASM siguiente (y me funciona):
[BITS 16]
ORG 0
main:
cli
mov ax, 0x07C0
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ax, 0×0000
mov ss, ax
mov sp, 0xFFFF
sti
mov si, msgTexto
call DisplayMessage
DisplayMessage:
lodsb
or al, al
jz .DONE
mov ah, 0x0E
mov bh, 0×00
mov bl, 0×07
int 0×10
jmp DisplayMessage
.DONE:
jmp Loop
Loop:
jmp Loop
msgTexto db 0x0D, 0x0A, "Hola mundo!!", 0×00
times 510-($-$$) db 0
dw 0xAA55
Vale, pues he visto diferentes maneras de incluir eso en C. Y ninguna me ha funcionado. Alguien sabría cómo hacerlo en este caso concreto?
Por ejemplo, he probado:
int main()
{
asm(
código asm
);
__asm__(...
y otros pero no me funciona. Seguro que por aquí hay alguna mente brillante capaz de solucionarlo.
[BITS 16]
ORG 0
main:
cli
mov ax, 0x07C0
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ax, 0×0000
mov ss, ax
mov sp, 0xFFFF
sti
mov si, msgTexto
call DisplayMessage
DisplayMessage:
lodsb
or al, al
jz .DONE
mov ah, 0x0E
mov bh, 0×00
mov bl, 0×07
int 0×10
jmp DisplayMessage
.DONE:
jmp Loop
Loop:
jmp Loop
msgTexto db 0x0D, 0x0A, "Hola mundo!!", 0×00
times 510-($-$$) db 0
dw 0xAA55
Vale, pues he visto diferentes maneras de incluir eso en C. Y ninguna me ha funcionado. Alguien sabría cómo hacerlo en este caso concreto?
Por ejemplo, he probado:
int main()
{
asm(
código asm
);
__asm__(...
y otros pero no me funciona. Seguro que por aquí hay alguna mente brillante capaz de solucionarlo.