📄 cyan_base_driver.asm
字号:
; }
; if(negative_flag)
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?220.1:
ld AH,@(45,Y) ; %r22 (negative_flag)
beq ?L21F9
; {
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?221.1:
; str_temp[int_count ++] = '-';
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?222.1:
ld AH,#'-'
ld AL,@(35,Y) ; %r17 (int_count)
st AL,@H'ffe1 ; %r0
add AL,#1
st AL,@(35,Y) ; %r17 (int_count)
st AH,@H'ffe5 ; %r2
ld AH,@H'ffe1 ; %r0
asr #16
st AL,@H'ffe7 ; %r3
st AH,@H'ffe6 ; %r3
mov AL,Y
add AL,#4
ld AH,#0
asl #1
add AL,@H'ffe7 ; %r3
addc AH,@H'ffe6 ; %r3
st AL,@H'ffe7 ; %r3
st AH,@H'ffe6 ; %r3
movax
ld AH,@H'ffe5 ; %r2
st.b AH,@(0,X)
?L21F9:
; }
;
; i = int_count;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?225.1:
ld AH,@(35,Y) ; %r17 (int_count)
; while (i)
st AH,@(41,Y) ; %r20 (i)
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?226.1:
?L26F9:
; ^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?226.1:
ld AH,@(41,Y) ; %r20 (i)
beq ?L27F9
; {
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?227.1:
; str_save[int_count-i] = str_temp[i-1];
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?228.1:
ld AL,@(41,Y) ; %r20 (i)
sub AL,#1
asl #16
asr #16
st AL,@H'ffe5 ; %r2
st AH,@H'ffe4 ; %r2
mov AL,Y
add AL,#4
ld AH,#0
asl #1
add AL,@H'ffe5 ; %r2
addc AH,@H'ffe4 ; %r2
st AL,@H'ffe5 ; %r2
st AH,@H'ffe4 ; %r2
movax
ld.bu AH,@(0,X)
ld AL,@(35,Y) ; %r17 (int_count)
sub AL,@(41,Y) ; %r20 (i)
st AH,@H'ffe5 ; %r2
asl #16
asr #16
add AL,@(33,Y) ; %r16 (str_save)
addc AH,@(32,Y) ; %r16 (str_save)
st AL,@H'ffe7 ; %r3
st AH,@H'ffe6 ; %r3
movax
ld AH,@H'ffe5 ; %r2
st.b AH,@(0,X)
; --i;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?229.1:
ld AL,@(41,Y) ; %r20 (i)
add AL,#-1
st AL,@(41,Y) ; %r20 (i)
bra ?L26F9
?L27F9:
; }
; str_save[int_count++] = '.';
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?231.1:
ld AH,#'.'
ld AL,@(35,Y) ; %r17 (int_count)
st AL,@H'ffe1 ; %r0
add AL,#1
st AL,@(35,Y) ; %r17 (int_count)
st AH,@H'ffe5 ; %r2
ld AH,@H'ffe1 ; %r0
asr #16
add AL,@(33,Y) ; %r16 (str_save)
addc AH,@(32,Y) ; %r16 (str_save)
st AL,@H'ffe7 ; %r3
st AH,@H'ffe6 ; %r3
movax
ld AH,@H'ffe5 ; %r2
st.b AH,@(0,X)
;
; _point_ = float_data - (double)u_l_int;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?233.1:
ld AL,@(49,Y) ; %r24 (u_l_int)
ld AH,@(48,Y) ; %r24 (u_l_int)
add Y,#-10
Lstab?36a:
st AL,@(1,Y)
st AH,@(0,Y)
mov AL,Y
add AL,#6
ld AH,@(0,Y)
add Y,#1
Lstab?37a:
bsr $__dflt
mov AH,Y
add AH,#5
st AH,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(4,Y)
ld AH,@(2,X)
st AH,@(3,Y)
ld AH,@(1,X)
st AH,@(2,Y)
ld AH,@(0,X)
st AH,@(1,Y)
mov AL,Y
add AL,#63
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(0,Y)
ld AH,@(2,X)
st AH,@(-1,Y)
ld AH,@(1,X)
st AH,@(-2,Y)
ld AH,@(0,X)
st AH,@(-3,Y)
mov AL,Y
add AL,#9
ld AH,@(-3,Y)
add Y,#-2
Lstab?38a:
bsr $__dsub
; _point_ = (negative_flag ? -_point_ : _point_);
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?234.1:
add Y,#7
Lstab?39a:
ld AH,@(49,Y) ; %r22 (negative_flag)
beq ?L32F9
mov AH,Y
add AH,#4
st AH,@H'ffe5 ; %r2
ld X,@H'ffe5 ; %r2
ld AH,@(3,X)
st AH,@(-1,Y)
ld AH,@(2,X)
st AH,@(-2,Y)
ld AH,@(1,X)
st AH,@(-3,Y)
ld AH,@(0,X)
st AH,@(-4,Y)
st Y,@H'ffe1 ; %r0
ld AH,@(-4,Y)
ld AL,@H'ffe1 ; %r0
add Y,#-3
Lstab?40a:
bsr $__dneg
mov AL,Y
add AL,#3
add Y,#3
Lstab?41a:
bra ?L31F9
?L32F9:
mov AL,Y
add AL,#4
?L31F9:
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(7,Y) ; _point_+3
ld AH,@(2,X)
st AH,@(6,Y) ; _point_+2
ld AH,@(1,X)
st AH,@(5,Y) ; _point_+1
ld AH,@(0,X)
st AH,@(4,Y) ; _point_
; while (point_len)
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?235.1:
add Y,#4
Lstab?42a:
?L35F9:
; ^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?235.1:
ld AH,@(47,Y) ; %r23 (point_len)
beq ?L36F9
; {
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?236.1:
; _point_ *= 10;
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?237.1:
ld X,#?lit0003
ld AH,@(3,X)
st AH,@(-1,Y)
ld AH,@(2,X)
st AH,@(-2,Y)
ld AH,@(1,X)
st AH,@(-3,Y)
ld AH,@(0,X)
st AH,@(-4,Y)
st Y,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(-5,Y)
ld AH,@(2,X)
st AH,@(-6,Y)
ld AH,@(1,X)
st AH,@(-7,Y)
ld AH,@(0,X)
st AH,@(-8,Y)
st Y,@H'ffe1 ; %r0
ld AH,@(-8,Y)
ld AL,@H'ffe1 ; %r0
add Y,#-7
Lstab?43a:
bsr $__dmul
; one_int_p = (int)(_point_);
^cyan_base_driver___cyan_base_driver.'D:\simcom\software\SIM300C\cyan_base_driver.c'.?238.1:
mov AL,Y
add AL,#7
st AL,@H'ffe1 ; %r0
ld X,@H'ffe1 ; %r0
ld AH,@(3,X)
st AH,@(6,Y)
ld AH,@(2,X)
st AH,@(5,Y)
ld AH,@(1,X)
st AH,@(4,Y)
ld AH,@(0,X)
st AH,@(3,Y)
ld AL,@(4,Y)
ld AH,@(3,Y)
add Y,#5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -