2012-01-12 42 views
3

我這個彙編代碼:INT%ebx有什麼問題?

INT %ebx 

GCC是給我試圖組裝它,當一個錯誤:

INT ERROR:mismatch operand type for 'int'. 

這是否意味着指令INT的操作數必須是一個常數像INT $0X80

回答

6

你的假設是正確的,INT的操作數必須是常數。據the NASM x86 reference

A.81 INT: Software Interrupt 
INT imm8      ; CD ib    [8086] 

A.82 INT3, INT1, ICEBP, INT01: Breakpoints 
INT1       ; F1     [P6] 
ICEBP       ; F1     [P6] 
INT01       ; F1     [P6] 
INT3       ; CC     [8086] 

A.83 INTO: Interrupt if Overflow 
INTO       ; CE     [8086] 

所以INT發生中斷的8位立即值和非實際變種採取寄存器。