我的任務是將使用NASM的彙編程序轉換爲天然氣。不幸的是,有很多不匹配的陳述。我已經轉換了一些人,但我仍然有關於如何這條語句轉換NASM天然氣:與天然氣resw對應
分鐘resw 1
在此先感謝麻煩。 :)
我的任務是將使用NASM的彙編程序轉換爲天然氣。不幸的是,有很多不匹配的陳述。我已經轉換了一些人,但我仍然有關於如何這條語句轉換NASM天然氣:與天然氣resw對應
分鐘resw 1
在此先感謝麻煩。 :)
預留一個字是很容易的,它只是使用:
min .word 0
其中保留一個字,並將其設置爲零。
如果你想保留一大塊,說50個字,很多編譯器允許這樣的事情:
buff .byte 50(0)
,但我不知道是否gas
支持。它確實似乎提供類似的功能與.fill
和.space
指令:
buff1 .fill 50, 1, 0 ; count, size, value
buff2 .space 50, 0 ; count (bytes), value (defaults to 0)
有些彙編器還允許之類的東西.word ?
或.byte 50(?)
,如果你不小心設置的值。 gas
再次可能支持或不支持。
在任何情況下,您的具體示例似乎都不需要這些。
你可以嘗試:
.lcomm min, 2
或
.comm min, 2
拋開空間在BSS部分兩個字節(一個字)。 bss部分的要點是加載程序將分配空間並在加載時將內容設置爲零,但它不會佔用磁盤上文件的空間。
.lcomm
是如果您只需要從您使用.lcomm
的文件中引用min
。 comm
是如果你需要從其他文件中引用min
(所以鏈接器將使其可用於其他文件)。
如果你喜歡使用的數據部分,它將使零您的文件和佔用的磁盤空間,然後這個,放置在數據部分,應該工作:
min:
.fill 2
氣體具有' .space size,fill'指令,其中_「發出'size'字節,每個值爲'fill'。size和fill都是絕對錶達式,如果省略逗號和'fill',則假定'fill'爲零「。_ – Michael 2014-12-03 08:30:09