为Arm A9 Cortex编写从小写到大写的代码
我得到了从小写到大写的算法,但在用汇编语言编写代码时,我会混淆寄存器和if语句。基本上,我正在尝试编写一个程序,在终端窗口>大写中生成小写字母 这就是我到目前为止所做的:为Arm A9 Cortex编写从小写到大写的代码,arm,uppercase,lowercase,Arm,Uppercase,Lowercase,我得到了从小写到大写的算法,但在用汇编语言编写代码时,我会混淆寄存器和if语句。基本上,我正在尝试编写一个程序,在终端窗口>大写中生成小写字母 这就是我到目前为止所做的: .equ JTAG_UART_BASE, 0xFF201000 .text /*executable code follows*/ .global _start _start: LDR R1, =JTAG_UART_BASE LDR R2, =MESSAGE COUT
.equ JTAG_UART_BASE, 0xFF201000
.text /*executable code follows*/
.global _start
_start:
LDR R1, =JTAG_UART_BASE
LDR R2, =MESSAGE
COUT:
LDRB R3,[R2],#1
CMP R3,#27
BEQ STOP
STRB R3,[R1]
B COUT
CIN:
LDR R4,[R1]
AND R5,R4,#0x8000
CMP R5,#0
BEQ CIN
AND R4,R4,#0x00FF
STRB R4,[R1]
B CIN
MESSAGE:
.asciz "Capitalize: "
我知道我需要比较寄存器,看看输入的ASCII码是否在96和122之间,然后执行SUB#32将其转换为大写
程序应该从终端窗口读取输入,然后
将小写字母大写,并在按ESC键时退出(ASCII)
27)
任何帮助或指导都将不胜感激。请提出更具体的问题,展示您迄今为止获得的代码,并指定它应该是什么以及其中哪些部分不起作用。抱歉,我添加了代码。这里还是新来的。谢谢哪里是
STOP
?.asciz“大写:
,这没有ASCII 27,您永远不会到达CIN
,CIN
没有ASCII 27的检查。那该死的和R5,R4,#0x8000
是什么意思?