我們使用ARM200學習彙編語言。我有一部分內存填充32個整數。我需要能夠將這32個整數打印到屏幕上。只是添加了數字0到什麼是寄存器的ASCII值9很容易的,但我很困惑,你如何打印出的數字大於9如何在ARM200中打印大於10的數字彙編語言
Print LDR r5, [r2] ;load whats in that part of memory to r5.
CMP r5, #9 ;compare if number is greater or less then 9
ADDLE r0, r5, #"0" ;add value in array to ascii value of 0 to print
SWI SWI_WriteC ;Print Value
ADD r6, r6, #1 ;increment counter
ADD r2, r2, #4 ;move portion of memory to the next int.
CMP r6, #32 ;check if you are done printing 32 ints
BNE Print ;if not loop back up to print
MOV pc, r14 ;return
R0 - 我可以打印出數字0是用於打印的寄存器,r2指向所有整數的內存位置。 r5是我把內存中的值和r6用於計數器的值。
是的,我意識到在內存中每個數字之間有4個字節的空間,但這對這個項目無關緊要。
類似這樣的問題提醒我很感激,其他人做這項工作,這樣我就不必: p –
什麼是ARM200?你想打印十進制或十六進制或八進制或二進制的數字......? –
ARM200是一個用於Windows XP的裝配編程模擬器,與我的教科書一起提供。我確實想打印出十進制數字,並感謝上面和下面的幫助。再次感謝你們。 – gluestick