none
Programación Hibrida RRS feed

  • Pregunta

  • eh estado leyendo sobre este tema y se me ha hecho muy simple pero al momento de ponerlo en practica en el compilador me sigue marcando un error mi codigo es este:

    #include "stdafx.h"
    #include "conio.h"


    int main(void){
    short a=0;
    short b=0; 
    short suma;
    _getch();
    printf("Dame el primer valor \n");
    scanf_s("%d", a);
    printf("Dame el segundo valor \n");
    scanf_s("%d", b);

    _asm{

    MOV AX, a
    ADD AX, b
    MOV suma, AX

    }
    printf("La suma es: ", & suma);
    return  0;

    }

    me manda esta leyenda... no se si pudieran ayudarme.

    Excepción no controlada en 0x0F5CD745 (msvcr110d.dll) en ASM.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.

    lunes, 5 de enero de 2015 20:57

Respuestas

  • #include "stdafx.h"
    #include "stdafx.h"
    #include "conio.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	short a=0;
    	short b=0; 
    	short suma;
    	_getch();
    	printf("Dame el primer valor \n");
    	scanf_s("%hd", &a);
    	printf("Dame el segundo valor \n");
    	scanf_s("%hd", &b);
    
    	_asm
    	{
    		MOV AX, a
    		ADD AX, b
    		MOV suma, AX
    	}
    
    	printf("La suma es: %d", suma);
    	return 0;
    }

    VC++ 2010 EXPRESS

    Fijate que scan requiere la dirección de la variable en donde va a almacenar lo capturado.

    Fijate que si estás compilando en un ambiente donde el int tiene 32 bits, el especificador del tipo short debe incluir el half, v.g., "%hd", o la función almacenará 4 bytes en el stack en lugar de dos. 


    lunes, 5 de enero de 2015 22:32