我想學習Y86,所以我做了一個非常簡單的程序。它有三個長整數的數組,並且每個塊由要求輸入用戶通過rdint
填充。在第一個Y86程序中沒有得到輸出
編譯後的(?)程序要求輸入三個,但不能打印出來。
代碼:
Main: irmovl Array, %edx
rdint %eax
rmmovl %eax, 0(%edx)
rdint %eax
rmmovl %eax, 4(%edx)
rdint %eax
rmmovl %eax, 8(%edx)
irmovl $10, %edi
Print: irmovl Array, %edx
mrmovl 0(%edx), %eax
wrch %eax
wrch %edi
mrmovl 4(%edx), %eax
wrch %eax
wrch %edi
mrmovl 8(%edx), %eax
wrch %eax
wrch %edi
halt
.align 4
Array:
.long 0
.long 0
.long 0
我輸入:
0
1
2
輸出:
(three blank lines below)
Stopped in 22 steps at PC = 0x47. Exception 'HLT', CC Z=1 S=0 O=0
Changes to registers:
%edx: 0x00000000 0x0000004c
%edi: 0x00000000 0x0000000a
Changes to memory:
0x0004: 0x024008f2 0x00000001
0x0008: 0x00000000 0x00000002
Changes to memory: 0x0004: 0x024008f2 0x00000001 0x0008:
0x00000000 0x00000002
您尚未表明您發佈的鏈接來自您自己的網站,這是必需的。無論如何,我已經刪除了它們,因爲它們不是必需的。 –