我们使用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