Sto provando a portare alcuni codici assembly scritti in Visual Studio nell'assembly GNU inline su Linux. Il codice originale utilizza _emit che MSDN descrive come istruzione pseudo e spiega come:Qual è l'equivalente di _emit su Linux?
Il pseudoinstruction _emit è simile alla direttiva DB di MASM. Si utilizza _emit per definire un singolo byte immediato nella posizione corrente nel segmento di testo corrente. Tuttavia, _emit può definire solo un byte alla volta e può solo definire byte nel segmento di testo. Usa la stessa sintassi dell'istruzione INT.
Come posso fare la stessa cosa su Linux?
+1, buon punto su ottimizzazioni. –
Grazie! Questo ha funzionato bene. – samgrover
Con '__volatile__' (o semplicemente' volatile' sui moderni compilatori) non dovresti avere alcun problema anche con le ottimizzazioni abilitate. Il compilatore deve emettere il byte nella posizione indicata (ovviamente, il codice circostante potrebbe essere pesantemente ottimizzato ...). – BeeOnRope