情况的故事,使用预制汇编语言构建汇编程序。我正在我的 C 程序中构建命令。它有效,但它出现了倒退。
我的程序会读取测试用例,然后您应该在 Linux 上对输出二进制文件执行 od 操作。以下是测试用例、十六进制汇编和输出的示例:
add r1 r2 r3 (11 23)
interrupt 0 (80 00)
Run Code Online (Sandbox Code Playgroud)
这只是我的一个单元测试的一小段。每当我在 Linux 上执行 od 命令时,我都会得到以下结果:
od -x output.bin
0000000 2311 0080
Run Code Online (Sandbox Code Playgroud)
他们被向后翻转。确实,应该是:
0000000 1123 8000
Run Code Online (Sandbox Code Playgroud)
我尝试过使用 linux 命令 od -t x1 output.bin ,它可以工作,但是它会将其分割为 2 位。必须有一种方法来翻转字节。
默认情况下od读取当前系统字节序中的 16 位值。
使用od -b或od -t x1将输入读取为字节。
一些实现od有一个--endian命令行选项来选择要使用的字节顺序,但 OS/X 上可用的 BSD 版本和 Linux 上的 GNU 版本都不支持它。
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |