小编I k*_*ing的帖子

从C编译器了解MIPS汇编代码

我将C代码转换为MIPS,我无法理解MIPS指令的一部分:

#include <inttypes.h>
#include <stdint.h>

uint16_t
chksum(uint16_t sum, const uint8_t *data, uint16_t len)
{
    uint16_t t;
    const uint8_t *dataptr;
    const uint8_t *last_byte;

    dataptr = data;
    last_byte = data + len - 1;

    while (dataptr < last_byte)
    {
        t = (dataptr[0] << 8) + dataptr[1];
        sum += t;
        if (sum < t)
        {
            sum++;
        }
        dataptr += 2;
    }
    if (dataptr == last_byte)
    {
        t = (dataptr[0] << 8) + 0;
        sum += t;
        if (sum < t)
        {
            sum++;
        } …
Run Code Online (Sandbox Code Playgroud)

c assembly compilation reverse-engineering mips

5
推荐指数
1
解决办法
168
查看次数

标签 统计

assembly ×1

c ×1

compilation ×1

mips ×1

reverse-engineering ×1