【发布时间】:2020-08-20 19:32:08
【问题描述】:
我发现汇编语言有一些困难,不幸的是,当我在谷歌搜索信息时,我找不到任何可以帮助我解决问题的东西。 我已经编写了这段代码,我正在寻求帮助,看看是否有办法让它更简单(如果可能的话)。另外,如果 cmets 有误,请告诉我。
NAME main
PUBLIC main
SECTION .text: CODE (2)
THUMB
main
LDR R4, =0x0097 ; R4 = 97 in hex
BL SUBROUTINE ; Go to Subroutine
STOP B STOP
SUBROUTINE
MOV R1, #1 ; Initialize R1 to 1
MOV R2, #0 ; Initialize R2 to 0
MOV R0, #0 ; Initialize R0 to 0
PUSH {R4}
LOOP
CMP R0, #8 ; Bits counter
BEQ DONE ; Go to DONE R0 = 8
ADD R0, R0, #1 ; Calculates the bits
AND R3, R4, R1 ; Checks if R3 = R4
CMP R3, #1 ; Comparing result with 1
BEQ ONE ; Jump to ONE
LSR R4, R4, #1 ; Right shift by 1
B LOOP
ONE
ADD R6, R6, #1 ; Saving #1 in R6
LSR R4, R4, #1 ; Right shift by 1
B LOOP
RETURN0
MOV R2, #0
POP {R4}
B STOP
RETURN1
MOV R2, #1
POP {R4}
B STOP
DONE
CMP R6, #2
BEQ RETURN0
CMP R6, #4
BEQ RETURN0
CMP R6, #6
BEQ RETURN0
CMP R8, #8
BEQ RETURN0
B RETURN1
END
任务如下: 该子程序在寄存器 R4 中有一个输入参数并返回一个 寄存器 R2 中的值。该子程序将检查 8 个最小的奇偶校验 输入参数的有效位。如果奇偶校验为偶数,则值为 0 返回,如果奇偶校验为奇数,则返回值 1。偶校验意味着 的个数是偶数,而个数的奇数 很奇怪。
提前致谢
【问题讨论】:
-
任何使您更难帮助您的事情都会导致您获得帮助的机会大大减少。具体来说,您应该将代码以文本形式包含在问题中,而不应以图像形式包含在外部网站上。
-
鉴于您的代码似乎没有任何问题,您的帖子可能更适合 Code Review。