2015-10-20 49 views

回答

3
/* Immediate. Without the `$`, does a memory access, and segfaults! */ 
mov $'a, %al 
/* al == 0x61 */ 

/* Memory. */ 
mov c, %al 
/* al == 0x62 */ 

c: .byte 'b 

/* Space character works. */ 
mov $' , %al 
/* al == 0x20 */ 

/* Backslash escapes work. */ 
mov $'\n , %al 
/* al == 0x0A */ 

有竟是一個例子:https://sourceware.org/binutils/docs-2.25/as/Characters.html

.byte 74, 0112, 092, 0x4A, 0X4a, 'J, '\J # All the same value. 

我不喜歡這種語法,原因如下:

  • 不與C預處理器發揮很好:MACRO($'a)失敗的原因CPP像char字符一樣對待'
  • 可能產生尾隨空白爲$',這是很難觀察
  • 沒有類似C
相關問題