查看完整版本: 一個新手問題
頁: [1]

st474ddr 發表於 2016-11-20 08:25 AM

一個新手問題

本帖最後由 st474ddr 於 2016-11-20 04:41 PM 編輯

最近自學組合語言我在習題上看到這段範例code
但是它沒有多加解釋 我自己下了ㄧ些註解
但剩下的我不太懂
看起來好像是矩陣
但是我不懂它是怎麼存的
還望好心的大大可以幫我解釋一下謝謝

/* ========================= */
/*       DATA section        */
/* ========================= */
        .data
        .align 4

/* --- variable a --- */
        .type a, %object
        .size a, 8
a:        .word 1
           .word 2
/* --- variable b --- */
        .type b, %object
        .size b, 4b:
        .word 3
c:
        .space 8, 0
/* ========================= */
/*       TEXT section        */
/* ========================= */
        .section .text
        .global main
        .type main,%function
.matrix:
        .word a
        .word b
        .word c
main:
        ldr r0, .matrix
        ldr r1, , #4  /* r1 := mem32 */
                          /* r0 := r0 + 4    */
        ldr r2,
        ldr r0, .matrix + 4
        ldr r3,       /* r3 := mem32 */
        ldr r4, .matrix + 8
        mul r5, r3, r1
        mul r6, r3, r2
        str r5, , #4  /* mem32 := r5 */
                               /* r4 := r4 + 4    */
        str r6,
        nop




...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

nypor 發表於 2016-11-21 12:11 AM

        ldr r0, .matrix
        ldr r1, , #4    ;r1=a
        ldr r2,           ;r2=a
        ldr r0, .matrix + 4
        ldr r3,           ;r3=b
        ldr r4, .matrix + 8
        mul r5, r3, r1
        mul r6, r3, r2
        str r5, , #4    ; c=a*b=1*4=4
        str r6,           ; c=a*b=2*4=8

desmond132518 發表於 2017-1-14 10:32 PM

What kind of programming language is this?
頁: [1]