Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

BF7 98 CBW ; only low



4BF8 8BD0 MOV DX,AX; #10 in DX

:4BFA 58 POP AX; sum is back

:4BFB 03C2 ADD AX,DX; 1+2+8+4+5+6+7+9+10

:4BFD 0550FE ADD AX,FE50; clean sum to 0-51

:4C00 BB0A00 MOV BX,000A; BX holds 10

:4C03 99 CWD; only AL

:4C04 F7FB IDIV BX; remainder in DX

:4C06 C45E06 LES BX,[BP+06]; reset pointer

:4C09 268A4702 MOV AL,ES:[BX+02]; load now # 3

:4C0D 98 CBW; only low

:4C0E 05D0FF ADD AX,FFD0; clean # 3 to 0-9

:4C11 3BD0 CMP DX,AX; remainder = pampered #3?

:4C13 7407 JZ 4C1C; yes, go on good guy

:4C15 33D2 XOR DX,DX; no! beggar off! Zero DX

:4C17 33C0 XOR AX,AX; and FLAG_AX = FALSE

:4C19 E91701 JMP 4D33; go to EXIT

let's_go_on_if_first_check_passed:

:4C1C C45E06 LES BX,[BP+06]; reset pointer

:4C1F 268A4701 MOV AL,ES:[BX+01]; now load #2 anew

:4C23 98 CBW; only low

:4C24 05D7FF ADD AX,FFD7; pamper adding +3

:4C27 A38D5E MOV [5E8D],AX; save SEC_+3

:4C2A 3D0900 CMP AX,0009; was it < 9? (no A-F)

:4C2D 7E05 JLE 4C34; ok, no 0xletter

:4C2F 832E8D5E0A SUB WORD PTR [5E8D],+0A; 0-5 if A-F

:4C34 C45E06 LES BX,[BP+06]; reset pointer

:4C37 268A07 MOV AL,ES:[BX]; load 1st input number

:4C3A 98 CBW; only low

:4C3B 05C9FF ADD AX,FFC9; pamper adding +7

:4C3E A38F5E MOV [5E8F],AX; save it in FIR_+7

:4C41 0BC0 OR AX,AX; if #1 > 7

:4C43 7D05 JGE 4C4A; no need to add 0xA

:4C45 83068F5E0A ADD WORD PTR [5E8F],+0A; FIR_+7 + 0xA

now_we_have_the_sliders_let's_prepare_for_loop:

:4C4A C45E0E LES BX,[BP+0E]; Set pointer to E

:4C4D 26C747020000 MOV WORD PTR ES:[BX+02],0000; 0 flag

:4C53 26C7070000 MOV WORD PTR ES:[BX],0000; 0 flag

:4C58 C706975E0900 MOV WORD PTR [5E97],0009; counter=9

:4C5E E99500 JMP 4CF6; Jmp check_counter

loop_8_times:

:4C61 C45E06 LES BX,[BP+06]; reset pointer

:4C64 031E975E ADD BX,[5E97]; add running counter

:4C68 268A07 MOV AL,ES:[BX]; load # counter+1

:4C6B 98 CBW; only low

:4C6C 50 PUSH AX; save 10th number

:4C6D A18D5E MOV AX,[5E8D]; ld SEC_+3 down_slider

:4C70 BA0A00 MOV DX,000A; BX holds 0xA

:4C73 F7EA IMUL DX; SEC_+3 * 0xA

:4C75 03068F5E ADD AX,[5E8F]; plus FIR_+7 up_slider

:4C79 BAA71E MOV DX,1EA7; fixed segment

:4C7C 8BD8 MOV BX,AX; BX = Lkup_val=(SEC_+3*10+FIR_+7)

:4C7E 8EC2 MOV ES,DX; ES = 1EA7

:4C80 268A870000 MOV AL,ES:[BX+0000]; ld 1EA7:[Lkup_val]

:4C85 98 CBW; only low: KEY_PAR

:4C86 8BD0 MOV DX,AX; save KEY_PAR in DX

:4C88 58 POP AX; repops 10th number

:4C89 03C2 ADD AX,DX; RE_SULT=KEY_PAR+#10

:4C8B 05D0FF ADD AX,FFD0; polish RE_SULT

:4C8E 99 CWD; only low: RE_SULT

:4C8F 8956FC MOV [BP-04],DX; save here KEY_PAR [9548]

:4C92 8946FA MOV [BP-06],AX; save here RE_SULT [9546]

:4C95 0BD2 OR DX,DX; KEY_PAR < 0?

:4C97 7C0F JL 4CA8; yes: KEY_PAR < 0

:4C99 7F05 JG 4CA0; no: KEY_PAR > 0

:4C9B 3D0900 CMP AX,0009; KEY_PAR = 0

:4C9E 7608 JBE 4CA8; no pampering if RE_SULT < 9

:4CA0 836EFA0A SUB WORD PTR [BP-06],+0A; else pamper

:4CA4 835EFC00 SBB WORD PTR [BP-04],+00; and SBB [9548]

:4CA8 C45E0E LES BX,[BP+0E]; reset pointer to E

:4CAB 268B4F02 MOV CX,ES:[BX+02]; charge CX [958C]

:4CAF 268B1F MOV BX,ES:[BX]; charge BX slider [958A]

:4CB2 33D2 XOR DX,DX; clear DX to zero

:4CB4 B80A00 MOV AX,000A; 10 in AX

:4CB7 9A930D2720 CALL 2027:0D93; call following RO_routine





Дата публикования: 2014-12-08; Прочитано: 193 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...