给定以下组装程序:
BITS 64
mov rax, 0b111Yasm产出:
error: expected `,'为什么这里需要一个逗号?NASM很高兴地组装了这个。
发布于 2015-04-01 08:40:21
根据“雅玛斯手册”:
3.5.1。数值常数 数字常量就是一个数字。NASM允许您以多种方式以各种数字基指定数字:可以以 H、Q或O为后缀,B表示十六进制、八进制和二进制,也可以以C的样式前缀0 x,或者以Borland的样式前缀$表示十六进制。下面是一些例子:
mov ax,10010011b ; binary
NASM手册补充说:
此外,当前版本的NASM接受前缀 0h表示十六进制,0d或0t表示十进制,0o或0q表示八进制,0b或0y表示二进制。
TL;DR: NASM同时支持二进制文本的b-suffix和0b-prefix,而YASM只支持后缀变体。因此,0b111需要编写为111b。
https://stackoverflow.com/questions/29386177
复制相似问题