Stavo ripassando le varie istruzione assembler, credo sia un errore causato dal tipo di variabili
Ma sono incappato in un errore 
errore c2400 errore di sintassi dell'assembler inline in 'secondo operando'. trovato 'newline' riga 45
B è inserto dall'utente tramite cin, é un signed short
Ecco il codice specifico
codice:
signed short A, B; //Inizializzazione variabili
cin>>B;
cin>>A;
codice:
//SEMPLICE IF
// if (B < 0) { //confronto salto
// B = B * -1;
_asm
{
mov AX, B
mov BX, 0
cmp AX, BX
jnl finese2 //se (AX<BX) esegui istruzione se no salta
MOV AX, B
MOV BX, -1 //MUL usa sempre il registro privilegiato AX
IMUL BX, //IMUL Moltiplicazione con segni MUL sorgente: AX=AX*BX
mov word ptr B, ax
finese2:
}
Ecco tutto il programma( non ha un senso visto che stavo solo testando le istruzioni)
codice:
#include<iostream>
using namespace std;
void IF()
{
signed short A, B; //Inizializzazione variabili
cin>>B;
cin>>A;
// IF AND
//if ((A < 0) && (B < 0)) { //confronto-salto con AND
// cout << "A e B sono entrambi negativi" << endl;
//}
_asm {
mov AX, A
mov bx, 0
cmp ax, bx
jnl finese
mov ax, bx
mov bx, 0
cmp ax, bx
jnl finese
}
cout << "A e B sono entrambi negativi" << endl;
_asm {
finese:
}
//SEMPLICE IF
// if (B < 0) { //confronto salto
// B = B * -1;
_asm
{
mov AX, B
mov BX, 0
cmp AX, BX
jnl finese2 //se (AX<BX) esegui istruzione se no salta
MOV AX, B
MOV BX, -1 //MUL usa sempre il registro privilegiato AX
IMUL BX, //IMUL Moltiplicazione con segni MUL sorgente: AX=AX*BX
mov word ptr B, ax
finese2:
}
//IF CON XOR if(B<10||B>30)
//{
// B++
//}
cin>>B;
_asm
{
mov AX,B
CMP AX,10
JL istruzione
mov AX,B
CMP AX,30
JG istruzione
JMP saltaist
istruzione:
INC B
saltaist:
}
system("pause");
}