【问题标题】:Convert bytes to words in mips assembly?在mips程序集中将字节转换为单词?
【发布时间】:2015-11-02 03:07:29
【问题描述】:

我们的任务是编写与我们提供的点阵打印机模拟器配合使用的代码。我相当确定大部分内容的实施与这个问题无关。主要是该工具接受32位数据(相当于一个字),每个字母的表示大小为1字节(8位)。将数组中的连续字节连接在一起不起作用,因为它没有在字边界上对齐,并且向它抛出连续字节也不起作用。有没有更好的方法?

【问题讨论】:

    标签: assembly mips


    【解决方案1】:

    您始终可以在机器字边界上对齐变量:

        .align  2
    var:
        .word   0 # 4 bytes word-aligned
    
        .align  2
    array:
        .space  32 # 32 bytes word-aligned
    

    【讨论】:

    • .align 不起作用有什么原因吗?我仍然得到地址未对齐字边界错误
    • @Kalahira 它必须有效。你有一个不同的问题,但我们不能在没有看到任何代码的情况下判断。
    • 我很确定 .word 前面的 .align 是多余的,.word 将始终是字对齐的。
    • @KonradLindenbach 我不确定。我可以看到我的 gcc 在.word somevalue 之前插入了align 2
    猜你喜欢
    • 2021-09-13
    • 2014-01-24
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多