首页 > 解决方案 > 汇编程序 GNU:小写到大写,反之亦然

问题描述

我需要将任何输入字符从小写转换为大写,反之亦然。这目前只读取输入并将其打印出来。我将 HEW 与 GNU 一起用于 H8S/2600 系列。我是这种语言的新手,所以如果我遗漏了什么,我很抱歉。

    .h8300s

    .equ    PUTS,0x114
    .equ    GETS,0x113
    .equ    syscall,0x1FF00

    .data
input:  .space  100
prompt: .asciz "Zadejte vstupni data: "

    .align  2
par_input:  .long  input
par_prompt: .long  prompt

    .align  1
    .space  100
stck:

    .text
    .global _start

在这里转换字符串:

transform:  

lab1:   rts
_start: mov.l   #stck,ER7
    mov.l   #input,ER2

    mov.w   #PUTS,R0
    mov.l   #par_prompt,ER1
    jsr     @syscall

    mov.w   #GETS,R0
    mov.l   #par_input,ER1
    jsr     @syscall

    xor.l   ER1,ER1

lab2:   mov.b   @ER2,R0L
    cmp.b   #0x0A,R0L
    beq     print
    jsr     @transform
    shll.l  #2,ER1
    shll.l  #2,ER1
    or.b    R0L,R1L
    inc.l   #1,ER2
    bra     lab2

print:
        mov.w   #PUTS,R0
        mov.l   #par_input,ER1
        jsr     @syscall
        jmp @lab3

lab3:   jmp @lab3

标签: assemblygnu-assembler

解决方案


推荐阅读