📄 queue.lis
字号:
0042 FC01 movw R30,R24
0044 8081 ldd R24,z+0
0046 8F5F subi R24,255 ; addi 1
0048 8083 std z+0,R24
004A .dbline 114
004A ; Q->data[Q->rear]=x;
004A FA01 movw R30,R20
004C 2380 ldd R2,z+3
004E 3480 ldd R3,z+4
0050 FA01 movw R30,R20
0052 E181 ldd R30,z+1
0054 FF27 clr R31
0056 E20D add R30,R2
0058 F31D adc R31,R3
005A 6083 std z+0,R22
005C .dbline 115
005C ; Q->rear=(Q->rear+1)%Q->queuesize;
005C CA01 movw R24,R20
005E 0196 adiw R24,1
0060 1C01 movw R2,R24
0062 FA01 movw R30,R20
0064 1581 ldd R17,z+5
0066 FC01 movw R30,R24
0068 0081 ldd R16,z+0
006A 0F5F subi R16,255 ; addi 1
006C 0E940000 xcall mod8u
0070 F101 movw R30,R2
0072 0083 std z+0,R16
0074 .dbline 116
0074 ; Q->errorcode=QUEUE_OK;
0074 2224 clr R2
0076 FA01 movw R30,R20
0078 2682 std z+6,R2
007A .dbline -2
007A L8:
007A 0E940000 xcall pop_gset2
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbsym r x 22 c
0080 .dbsym r Q 20 pS[.1]
0080 .dbend
0080 .dbfunc e DeQueue _DeQueue fc
0080 ; temp -> R20
0080 ; Q -> R22,R23
.even
0080 _DeQueue::
0080 0E940000 xcall push_gset2
0084 B801 movw R22,R16
0086 .dbline -1
0086 .dbline 131
0086 ; //SEI();
0086 ; }
0086 ; /*********************************************************************************************************
0086 ; ** 函数名称:DeQueue
0086 ; ** 功能描述:出队
0086 ; ** 输 入:
0086 ; ** 输 出:
0086 ; ** 全局变量:
0086 ; ** 调用模块:
0086 ; ** 说明:
0086 ; ** 注意:
0086 ; ** 日 期: 2006年8月29日
0086 ; ********************************************************************************************************/
0086 ; uint8 DeQueue(CirQueue * Q)
0086 ; {
0086 .dbline 133
0086 ; uint8 temp;
0086 ; if(EmptyQueue(Q))
0086 FB01 movw R30,R22
0088 2280 ldd R2,z+2
008A 2220 tst R2
008C 29F4 brne L12
008E .dbline 134
008E ; {
008E .dbline 135
008E ; Q->errorcode=QUEUE_UNDERFLOW;
008E 82E0 ldi R24,2
0090 FB01 movw R30,R22
0092 8683 std z+6,R24
0094 .dbline 136
0094 ; return FALSE;
0094 0027 clr R16
0096 1BC0 xjmp L11
0098 L12:
0098 .dbline 139
0098 ; }
0098 ; //CLI();
0098 ; Q->count--;
0098 CB01 movw R24,R22
009A 0296 adiw R24,2
009C FC01 movw R30,R24
009E 8081 ldd R24,z+0
00A0 8150 subi R24,1
00A2 8083 std z+0,R24
00A4 .dbline 140
00A4 ; temp=Q->data[Q->front];
00A4 FB01 movw R30,R22
00A6 2380 ldd R2,z+3
00A8 3480 ldd R3,z+4
00AA FB01 movw R30,R22
00AC E081 ldd R30,z+0
00AE FF27 clr R31
00B0 E20D add R30,R2
00B2 F31D adc R31,R3
00B4 4081 ldd R20,z+0
00B6 .dbline 141
00B6 ; Q->front=(Q->front+1)%Q->queuesize;
00B6 FB01 movw R30,R22
00B8 1581 ldd R17,z+5
00BA FB01 movw R30,R22
00BC 0081 ldd R16,z+0
00BE 0F5F subi R16,255 ; addi 1
00C0 0E940000 xcall mod8u
00C4 FB01 movw R30,R22
00C6 0083 std z+0,R16
00C8 .dbline 142
00C8 ; Q->errorcode=QUEUE_OK;
00C8 2224 clr R2
00CA 2682 std z+6,R2
00CC .dbline 144
00CC ; //SEI();
00CC ; return temp;
00CC 042F mov R16,R20
00CE .dbline -2
00CE L11:
00CE 0E940000 xcall pop_gset2
00D2 .dbline 0 ; func end
00D2 0895 ret
00D4 .dbsym r temp 20 c
00D4 .dbsym r Q 22 pS[.1]
00D4 .dbend
00D4 .dbfunc e FrontQueueData _FrontQueueData fc
00D4 ; Q -> R16,R17
.even
00D4 _FrontQueueData::
00D4 .dbline -1
00D4 .dbline 158
00D4 ; }
00D4 ; /*********************************************************************************************************
00D4 ; ** 函数名称:FrontQueueData
00D4 ; ** 功能描述:出队
00D4 ; ** 输 入:
00D4 ; ** 输 出:
00D4 ; ** 全局变量:
00D4 ; ** 调用模块:
00D4 ; ** 说明:
00D4 ; ** 注意:
00D4 ; ** 日 期: 2006年8月29日
00D4 ; ********************************************************************************************************/
00D4 ; uint8 FrontQueueData(CirQueue * Q)
00D4 ; {
00D4 .dbline 159
00D4 ; if(EmptyQueue(Q))
00D4 F801 movw R30,R16
00D6 2280 ldd R2,z+2
00D8 2220 tst R2
00DA 29F4 brne L15
00DC .dbline 160
00DC ; {
00DC .dbline 161
00DC ; Q->errorcode=QUEUE_UNDERFLOW;
00DC 82E0 ldi R24,2
00DE F801 movw R30,R16
00E0 8683 std z+6,R24
00E2 .dbline 162
00E2 ; return FALSE;
00E2 0027 clr R16
00E4 09C0 xjmp L14
00E6 L15:
00E6 .dbline 164
00E6 ; }
00E6 ; return Q->data[Q->front];
00E6 F801 movw R30,R16
00E8 2380 ldd R2,z+3
00EA 3480 ldd R3,z+4
00EC F801 movw R30,R16
00EE E081 ldd R30,z+0
00F0 FF27 clr R31
00F2 E20D add R30,R2
00F4 F31D adc R31,R3
00F6 0081 ldd R16,z+0
00F8 .dbline -2
00F8 L14:
00F8 .dbline 0 ; func end
00F8 0895 ret
00FA .dbsym r Q 16 pS[.1]
00FA .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -