Programación General > ASM (Ensamblador)

 Ensamblador + C

(1/1)

sneider:
Wenas, necesito saber como puedo meter este codigo de ensamblador en un compilador tipo Turbo C   o   Dev-C++ . Que hay q hacer para que compile sin errores? Que es lo ke hay q poner para ke compile ensamblador? gracias.
este es el codigo :

; Syntax:  CAPS
CSEG           SEGMENT
               ASSUME  cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
               ORG     100h
START:         mov     ax,40h          ;ROM Seg
               mov     es,ax
               mov     ax,es:[17h]     ;Cur Stat
               or      al,01000000b    ;Caps ON
               mov     es:[17h],ax
EXIT:          mov     al,RC           ;ErrorLevel
               mov     ah,4Ch          ;Return/Exit
               int     21h             ;DOS
               ret
; Data & Constants
RC             DB      0
CSEG           ENDS
               END     START
;*** End of Program ***

Ruben3d:
Hola.

En este post

http://foros.solocodigo.com/index.php?showtopic=6882

aparecen funciones de C con código ensamblador. Está hecho para Visual C++ pero no creo que difiera mucho para los compiladores que has mencionado.

Un saludo.

Ruben3d

Martin Candurra:
Si no me equivoco el Dev C++ está basado en GCC, por lo que tendrás que usar la sintaxis AT&T y no intel.
Te dejo un link  a un artículo de Inline Assembly en GCC:
http://routix.sourceforge.net/docs/inline/inline.html

AbBaDoN:
Los bloques de assembler dentro de Turbo C van entre llaves con un identificador "asm". Pero la declaracion de variables va en sentencias de c. No hace falta asumir los segmentos ni la posicion. Por ejemplo

char c;
int i;

asm {
mov c, 48h
lea ax,i
mov ds:[ax], 0e56h
};

Es bastante transparente el uso de las variables. Su direccion las da el compilador, pero en assembler puede recorrerse como arreglos de bytes a partir de su direccion base.  :rolleyes:

Navegación

[0] Índice de Mensajes

Ir a la versión completa