为Arm A9 Cortex编写从小写到大写的代码

为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

我得到了从小写到大写的算法,但在用汇编语言编写代码时,我会混淆寄存器和if语句。基本上,我正在尝试编写一个程序,在终端窗口>大写中生成小写字母

这就是我到目前为止所做的:

.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
是什么意思?