- 打卡等级:以坛为家II
- 打卡总天数:452
- 最近打卡:2025-05-01 06:20:50
已绑定手机
金牌会员
- 积分
- 2971
|
发表于 2025-3-13 15:07:15
|
显示全部楼层
void main(void)
{
int volatile x;
x /= 100;
while (1)
{
}
}
转成ASM后的结果是:
$NOMACRO
$MODSRC
$MODEL(1)
$CASE
;
; 'main.SRC' generated from 'main.c'
; COMPILER INVOKED BY:
; D:\Software\单片机\编译\C251_V560\C251.EXE main.c SRC
;
NAME main
EXTRN CODE : NEAR (?C?STARTUP)
EXTRN CODE : NEAR (?C?SIDIV)
?PR?MAIN?MAIN SEGMENT CODE
?DT?MAIN?MAIN SEGMENT DATA OVERLAYABLE (main)
RSEG ?DT?MAIN?MAIN
x?040: DSW 1
;--- special function registers and bits:
ACC DATA 0E0H
PSW DATA 0D0H
DPL DATA 082H
DPH DATA 083H
B DATA 0F0H
SP DATA 081H
PSW1 DATA 0D1H
Z BIT 0D1H.1
EA BIT 0A8H.7
OV BIT 0D0H.2
P BIT 0D0H.0
F0 BIT 0D0H.5
RS1 BIT 0D0H.4
RS0 BIT 0D0H.3
AC BIT 0D0H.6
;--- end of special function registers and bits.
PUBLIC main
; line 1: //#include "stc32g.h"
; line 2:
; line 3:
; line 4:
; line 5: void main(void)
RSEG ?PR?MAIN?MAIN
main PROC
; line 6: {
; line 7: int volatile x;
; line 8: x /= 100;
MOV WR4,#064H
MOV WR6,x?040
LCALL ?C?SIDIV
MOV x?040,WR6
; line 9: while (1)
; line 10: {
; line 11:
; line 12: }
?C0001:
SJMP ?C0001
ENDP
; line 13: }
END
并没有生成LCALL 0000H |
|