Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
故事情节,用预先制作好的汇编语言构建一个汇编程序。我正在C程序中生成命令。它起作用了,但它是向后的。
我的程序读取测试用例,然后在linux上对输出的二进制文件执行od。下面是测试用例、十六进制程序集和输出的示例:

add r1 r2 r3 (11 23)
interrupt 0 (80 00)

这只是我的一个单元测试的一小部分。每当我在Linux上执行od命令时,都会得到:
od -x output.bin
0000000 2311 0080

它们被向后翻转。真的,应该是:
0000000 1123 8000

我试过使用Linux命令od-t x1 output.bin,这是有效的,但是它将它分割了2位。必须有一种方法来翻转字节。

最佳答案

默认情况下,od读取当前系统的endianness中的16位值。
使用od -bod -t x1以字节形式读取输入。
od的一些实现有一个--endian命令行选项来选择要使用的endianness,但是os/x上可用的bsd版本和linux上的gnu版本都不支持它。

关于c - 在Linux上使用od命令是否倒退? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58528968/

10-08 22:08