dingy 发表于 2022-10-8 19:03

关于汇编GOTO $怎么理解,死循环?

如题,网上搜索都说GOTO $-1/+1等等;跳转到前一条/后一条指令;
此处的GOTO 是用在汇编语言中的,下面是截取了一段代码,以供分析
1         CLRF   60H      ;模式6收到信号,绿色灯长亮
2         INCF   60H,1      ;60H=1
3         MOVLW04H      ;W=#04H (绿色灯亮)
4         CALL   WR_RA123      ;调用RA2口高电平输出子程序
5         GOTO   $
6   STA007:                ;不是最大模式
7          INCF   26H,1      ;模式寄存器+1
8          GOTO   STA004      ;
            .
            .
            .
其中1-4行实现了拉高RA2口电平,然后出现了GOTO $,下面是另外的功能段

这个GOTO $指死循环?

xxrs 发表于 2022-10-8 19:05

是不是这么理解?

dengdc 发表于 2022-10-8 19:14

写C的话, 代码里面也有写while(1);的啊.

jlyuan 发表于 2022-10-8 19:17

没有上下文, 只有单独一句语句的分析就是耍流氓.....

dingy 发表于 2022-10-8 19:21

补全了,是汇编里面的一段,主要不理解此处的GOTO到底怎么执行

llljh 发表于 2022-10-8 19:24

是死循环

pengf 发表于 2022-10-8 19:27

$表示当前偏移地址,也就是它所在的位置

llljh 发表于 2022-10-8 19:30

pic的汇编语言goto $-1是跳转到上一条指令处

lizye 发表于 2022-10-8 19:33

你下载的这个汇编代码就是很简单的功能啦.

liliang9554 发表于 2022-10-8 19:36

相当于C里面,你写一个操作IO口的, 然后写个while(1);再main的末尾啦..
不然程序就继续往后面跑..
更多操作

zhenykun 发表于 2022-10-8 19:38

看不懂汇编啊

jlyuan 发表于 2022-10-8 19:41

看不懂啊看不懂

yszong 发表于 2022-10-8 19:42

理解不了啊

juventus9554 发表于 2022-10-8 19:45

能看到卡死在哪里了吗

juventus9554 发表于 2022-10-8 19:48

“ GOTO   $ ” 就是到此死循环

软刹车的作用,

一般是debug时用,我们在调试程序时经常这么写。

shimx 发表于 2022-10-8 19:50

主要难以懂,不是不能用,是难懂。

huangchui 发表于 2022-10-8 19:52

C的循环虽然是以来GOTO实现,但是是结构化的,在C这个结构层次看,不会造成难以理解的情况。

yszong 发表于 2022-10-8 19:57

可以单步调试看看怎么走的啊

stly 发表于 2022-10-8 19:59

请问什么叫做软刹车

wyjie 发表于 2022-10-8 20:02

这个符号好特殊
页: [1] 2
查看完整版本: 关于汇编GOTO $怎么理解,死循环?