我试图在汇编语言中为at89s52微处理器编写程序,我在youtube上找到了一些非常基本的教程,自从我用Keil编程以来,这些教程对我没有多大帮助,而且大多数都是用C语言编写的,这就是为什么我在这里寻求帮助的原因。
我想做一个插入排序,以适应我的数字,这些数字是:05H,01H,04H,02H和08H,但是尽管我已经尝试了很多次,但我无法完成我想要做的循环。我想问是否有人能告诉我如何开始,因为我想不出任何事情来做我的插入排序,这是我目前的代码:
ORG 0000H
AJMP MAIN
ORG 0040H
MAIN:
MOV DPTR, #70H
MOV A, #05H
MOVX @DPTR, A
INC DPTR
MOV A, #01H
MOVX @DPTR, A
INC DPTR
MOV A, #04H
MOVX @DPTR, A
INC DPTR
MOV A, #02H
MOVX @DPTR, A
INC DPTR
MOV A, #08H
MOVX @DPTR, A
MOV R0, #1H
CJNE R0, #5H, CICLO
CICLO: //loop
MOV R1, R0
END发布于 2022-10-13 10:16:28
MOV DPTR, #70H
L1:
movx a, @dptr
mov r0, a
inc dptr
movx a, @dptr
mov r1, a
clr c
subb a, r0
jc less
;more
mov a, r1
movx @dptr, a
mov a, dpl
clr c
subb a, #1
jnc L2
dec dph
L2:
mov dpl, a
mov a, r0
movx @dptr, a
jmp L4
less:
mov a, r0
movx @dptr, a
mov a, dpl
clr c
subb a, #1
jnc L3
dec dph
L3:
mov dpl, a
mov a, r1
movx @dptr, a
L4:
inc dptr
mov r0, dpl
mov r1, dph
cjne r0, #70h+5-1, L1 ;Your the Low Address equelly 70h
cjne r1, #00h, L1 ;Your the High Address equelly 00h
mov dptr, #70h
jmp L1https://stackoverflow.com/questions/74014406
复制相似问题