程序集x86 - 将short int转换为int(WORD为DWORD)

时间:2015-10-12 12:26:47

标签: assembly matrix x86

我在C中有一个名为m的矩阵: m = {{1,2,3,4,5},{1,2,3,4,5}}

但是m是一个 WORD(短整数)类型,我需要在一个名为 DWORD [number] 的DWORD类型(int)变量中转换矩阵的每个元素展示它。

为什么呢?因为练习就是这样,并且不做任何修改。

任何人都知道怎么做?非常感谢你。

修改 一种方法,如Michael所述,使用 MOVSX 这样的说明:

MOVSX destination, source

源需要小于目的地。但是,在此示例中,矩阵的第一次迭代将是:

iter:
    MOV esi, 0    
    MOV bx, WORD[m+esi]
    MOVSX eax, bx
    MOV DWORD[number], eax
    ADD esi, 2
    CMP Register1, DimMatrix
    JLE iter

Register1 Register2 是您的索引寄存器,用于抓取矩阵。

1 个答案:

答案 0 :(得分:0)

编辑:有一种方法可以做到这一点,正如Michael所说的那样使用MOVSX这样的指令:

MOVSX destination, source

源需要小于目的地。但是,在此示例中,矩阵的第一次迭代将是:

iter:
    MOV esi, 0    
    MOV bx, WORD[m+esi]
    MOVSX eax, bx
    MOV DWORD[number], eax
    ADD esi, 2
    CMP Register1, DimMatrix
    JLE iter

其中Register1和Register2是用于抓取矩阵的索引寄存器。