首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >8051组件中的循环?(at89s52)

8051组件中的循环?(at89s52)
EN

Stack Overflow用户
提问于 2022-10-10 11:44:08
回答 1查看 39关注 0票数 0

我试图在汇编语言中为at89s52微处理器编写程序,我在youtube上找到了一些非常基本的教程,自从我用Keil编程以来,这些教程对我没有多大帮助,而且大多数都是用C语言编写的,这就是为什么我在这里寻求帮助的原因。

我想做一个插入排序,以适应我的数字,这些数字是:05H,01H,04H,02H和08H,但是尽管我已经尝试了很多次,但我无法完成我想要做的循环。我想问是否有人能告诉我如何开始,因为我想不出任何事情来做我的插入排序,这是我目前的代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-10-13 10:16:28

代码语言:javascript
复制
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 L1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74014406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档