我想從最低字節到最高字節的EBX寄存器的連續字節中存儲斐波那契數列。我的代碼按預期工作,直到這一點:如何在EBX寄存器中存儲連續的字節
fib0=0
fib1=1
fib2= fib0 + fib1
fib3= fib1 + fib2
fib4= fib2 + fib3
fib5= fib3 + fib4
fib6= fib4 + fib5
.data
array BYTE fib2, fib3, fib4, fib5, fib6 ;Adding elements to the array
.code
main PROC
xor ebx,ebx
xor esi,esi
mov esi,OFFSET array ; Moves array in to ESI for offset
inc esi ; incrementing to fib3 value
mov bl,[esi] ; fib3 going to bl registry
inc esi ; inc. to fib4 value
mov bh,[esi] ; fib4 going to bh registry
當我做一個DumpRegs的EBX = 00000302。當我然後嘗試將fib5移動到bx註冊表時,它似乎在寫另外兩個bl和bh註冊表值。所以,當我寫的另外兩個FIB值在EBX註冊表用下面的代碼:
inc esi ; inc. to fib5 value
mov bx,[esi] ; fib5 going to bx registry
inc esi ; inc. to fib6 value
mov ebx,[esi] ; fib6 going to ebx registry
我對EBX = 00000008終值,這意味着最終MOV說法是完全覆蓋整個寄存器。我希望它在連續字節中看起來像EBX = 08050302。這可能嗎?
'ror ebx,8'是一個巧妙的把戲,並且完美地工作!謝謝。 –