📄 _memcmp.asm
字号:
;--------------------------------------------------------; File Created by SDCC : FreeWare ANSI-C Compiler; Version 2.3.0 Thu Sep 20 10:57:48 2001;-------------------------------------------------------- .module _memcmp ;--------------------------------------------------------; Public variables in this module;-------------------------------------------------------- .globl _memcmp;--------------------------------------------------------; special function registers;--------------------------------------------------------;--------------------------------------------------------; special function bits ;--------------------------------------------------------;--------------------------------------------------------; internal ram data;-------------------------------------------------------- .area _DATA;--------------------------------------------------------; overlayable items in internal ram ;-------------------------------------------------------- .area _OVERLAY;--------------------------------------------------------; indirectly addressable internal ram data;-------------------------------------------------------- .area _ISEG;--------------------------------------------------------; bit data;-------------------------------------------------------- .area _BSEG;--------------------------------------------------------; external ram data;-------------------------------------------------------- .area _XSEG;--------------------------------------------------------; global & static initialisations;-------------------------------------------------------- .area _GSINIT .area _GSFINAL .area _GSINIT;--------------------------------------------------------; Home;-------------------------------------------------------- .area _HOME .area _CODE;--------------------------------------------------------; code;-------------------------------------------------------- .area _CODE; _memcmp.c 27; genLabel; genFunction; ---------------------------------; Function memcmp; ---------------------------------___memcmp_start:_memcmp: push ix ld ix,#0 add ix,sp; _memcmp.c 33; genIfx; AOP_STK for ld a,8(ix); Rule 8: Removed redundent or for (ix) or a,9(ix) jp nz,00104$; _memcmp.c 34; genRet ld hl,#0x0000 jp 00107$; _memcmp.c 36; genLabel00104$:; genMinus; AOP_STK for ld c,8(ix) ld b,9(ix) dec bc; genAssign; AOP_STK for ld 8(ix),c ld 9(ix),b; genIfx ld a,c; Rule 7: Removed redundent or or a,b jp z,00106$; genAssign; (operands are equal 3); genPointerGet; AOP_STK for ld l,4(ix) ld h,5(ix) ld e,(hl); genAssign; AOP_STK for ld d,6(ix) ld c,7(ix); genPointerGet ld l,d ld h,c ld b,(hl); genCmpEq; genCmpEq: left 1, right 1, result 0 ld a,e cp b; Rule 4: Changed jp order jp z,00114$00113$: jp 00106$00114$:; _memcmp.c 37; genAssign; AOP_STK for ld b,4(ix) ld e,5(ix); genPlus; AOP_STK for ; genPlusIncr; Can't optimise plus by inc, falling back to the normal way ld a,b add a,#0x01 ld 4(ix),a ld a,e adc a,#0x00 ld 5(ix),a; _memcmp.c 38; genAssign; (registers are the same); genPlus; AOP_STK for ; genPlusIncr; Can't optimise plus by inc, falling back to the normal way ld a,d add a,#0x01 ld 6(ix),a ld a,c adc a,#0x00 ld 7(ix),a; genGoto jp 00104$; genLabel00106$:; _memcmp.c 41; genAssign; AOP_STK for ld l,4(ix) ld h,5(ix); genPointerGet ld c,(hl); genAssign; AOP_STK for ld l,6(ix) ld h,7(ix); genPointerGet ld b,(hl); genMinus ld a,c sub a,b; genCast; Rule 1: Removed redundent load ld c,a rla sbc a,a ld b,a; genRet ld l,c ld h,b; genLabel00107$:; genEndFunction pop ix ret___memcmp_end: .area _CODE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -