1 .module wc_strset 2 .area _CODE 3 .globl _wc_strset 00000000 4 _wc_strset:: 00000000 DD E5 [15] 5 push ix 00000002 DD 21 00 00 [14] 6 ld ix, #0 00000006 DD 39 [15] 7 add ix, sp 8 00000008 DD 7E 04 [19] 9 ld a, 4(ix) ; c (из-за push ix) 0000000B DD E1 [14] 10 pop ix 11 12 ; записываем первый байт 0000000D 77 [ 7] 13 ld (hl), a 14 0000000E 42 [ 4] 15 ld b, d 0000000F 4B [ 4] 16 ld c, e 17 18 ; len == 1 → всё 00000010 0B [ 6] 19 dec bc 00000011 78 [ 4] 20 ld a, b 00000012 B1 [ 4] 21 or c 00000013 28 05 [12] 22 jr z, _wc_strset_done 23 24 ; DE = HL + 1 00000015 E5 [11] 25 push hl 00000016 D1 [10] 26 pop de 00000017 13 [ 6] 27 inc de 28 29 ; BC = len - 1 уже 30 00000018 ED B0 [21] 31 ldir 32 0000001A 33 _wc_strset_done: 34 ; очистка стека 0000001A C1 [10] 35 pop bc 0000001B 33 [ 6] 36 inc sp 0000001C C5 [11] 37 push bc 0000001D C9 [10] 38 ret