============================================================================================================================================== OFFSET 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ---------------------------------------------------------------------------------------------------------------------------------------------- 00000000 54 49 54 4C 45 20 20 53 71 75 61 72 65 20 52 6F 6F 74 20 42 79 20 4F 64 64 20 4E 75 6D 62 65 72 TITLE Square Root By Odd Number 00000020 73 20 28 41 4E 53 34 31 2E 41 53 4D 29 0D 0A 20 20 20 20 20 20 20 20 20 20 50 41 47 45 20 20 20 s (ANS41.ASM)♪◙ PAGE 00000040 20 20 20 2C 31 33 32 0D 0A 4F 55 52 5F 43 4F 44 45 20 20 53 45 47 4D 45 4E 54 20 20 20 50 41 52 ,132♪◙OUR_CODE SEGMENT PAR 00000060 41 20 27 43 4F 44 45 27 0D 0A 09 20 20 50 55 42 4C 49 43 20 20 20 20 53 52 33 32 0D 0A 53 52 33 A 'CODE'♪◙○ PUBLIC SR32♪◙SR3 00000080 32 20 20 20 20 20 20 50 52 4F 43 20 20 20 20 20 20 46 41 52 0D 0A 20 20 20 20 20 20 20 20 20 20 2 PROC FAR♪◙ 000000A0 41 53 53 55 4D 45 20 20 20 20 43 53 3A 4F 55 52 5F 43 4F 44 45 0D 0A 20 20 20 20 20 20 20 20 20 ASSUME CS:OUR_CODE♪◙ 000000C0 20 50 55 53 48 20 20 20 20 20 20 41 58 09 09 20 20 20 20 20 3B 53 61 76 65 20 6F 72 69 67 69 6E PUSH AX○○ ;Save origin 000000E0 61 6C 20 6E 75 6D 62 65 72 0D 0A 09 20 20 50 55 53 48 09 20 20 20 20 44 58 0D 0A 09 20 20 50 55 al number♪◙○ PUSH○ DX♪◙○ PU 00000100 53 48 20 20 20 20 20 20 43 58 09 09 20 20 20 20 20 3B 20 61 6E 64 20 43 58 20 6F 6E 20 73 74 61 SH CX○○ ; and CX on sta 00000120 63 6B 0D 0A 09 20 20 4D 4F 56 09 20 20 20 20 42 58 2C 31 09 20 20 20 20 20 3B 54 6F 20 73 74 61 ck♪◙○ MOV○ BX,1○ ;To sta 00000140 72 74 2C 20 28 42 58 29 20 3D 20 31 0D 0A 09 20 20 53 55 42 09 20 20 20 20 43 58 2C 43 58 09 20 rt, (BX) = 1♪◙○ SUB○ CX,CX○ 00000160 20 20 20 20 3B 20 61 6E 64 20 28 43 58 29 20 3D 20 30 0D 0A 41 47 41 49 4E 3A 09 20 20 53 55 42 ; and (CX) = 0♪◙AGAIN:○ SUB 00000180 09 20 20 20 20 41 58 2C 42 58 09 20 20 20 20 20 3B 53 75 62 74 72 61 63 74 20 6E 65 78 74 20 6F ○ AX,BX○ ;Subtract next o 000001A0 64 64 20 6E 6F 2E 20 66 72 6F 6D 20 41 58 0D 0A 09 20 20 53 42 42 09 20 20 20 20 44 58 2C 30 09 dd no. from AX♪◙○ SBB○ DX,0○ 000001C0 20 20 20 20 20 3B 20 61 6E 64 20 44 58 0D 0A 09 20 20 4A 43 09 20 20 20 20 44 4F 4E 45 09 20 20 ; and DX♪◙○ JC○ DONE○ 000001E0 20 20 20 3B 44 69 64 20 73 75 62 2E 20 63 72 65 61 74 65 20 61 20 62 6F 72 72 6F 77 3F 0D 0A 09 ;Did sub. create a borrow?♪◙○ 00000200 20 20 49 4E 43 09 20 20 20 20 43 58 09 09 20 20 20 20 20 3B 20 4E 6F 2E 20 49 6E 63 72 65 6D 65 INC○ CX○○ ; No. Increme 00000220 6E 74 20 74 68 65 20 73 71 75 61 72 65 20 72 6F 6F 74 2C 0D 0A 09 20 20 41 44 44 20 20 20 20 20 nt the square root,♪◙○ ADD 00000240 20 20 42 58 2C 32 09 20 20 20 20 20 3B 20 20 63 61 6C 63 75 6C 61 74 65 20 74 68 65 20 6E 65 78 BX,2○ ; calculate the nex 00000260 74 20 6F 64 64 20 6E 6F 2E 0D 0A 09 20 20 4A 4D 50 20 20 20 20 20 20 20 41 47 41 49 4E 09 20 20 t odd no.♪◙○ JMP AGAIN○ 00000280 20 20 20 3B 20 20 74 68 65 6E 20 67 6F 20 6D 61 6B 65 20 6E 65 78 74 20 73 75 62 74 72 61 63 74 ; then go make next subtract 000002A0 69 6F 6E 0D 0A 44 4F 4E 45 3A 09 20 20 4D 4F 56 09 20 20 20 20 42 58 2C 43 58 09 20 20 20 20 20 ion♪◙DONE:○ MOV○ BX,CX○ 000002C0 3B 20 59 65 73 2E 20 20 54 72 61 6E 73 66 65 72 20 72 65 73 75 6C 74 20 74 6F 20 42 58 0D 0A 09 ; Yes. Transfer result to BX♪◙○ 000002E0 20 20 50 4F 50 09 20 20 20 20 43 58 09 09 20 20 20 20 20 3B 20 20 61 6E 64 20 72 65 73 74 6F 72 POP○ CX○○ ; and restor 00000300 65 20 74 68 65 20 72 65 67 69 73 74 65 72 73 0D 0A 09 20 20 50 4F 50 09 20 20 20 20 44 58 0D 0A e the registers♪◙○ POP○ DX♪◙ 00000320 09 20 20 50 4F 50 20 20 20 20 20 20 20 41 58 0D 0A 09 20 20 52 45 54 0D 0A 53 52 33 32 20 20 20 ○ POP AX♪◙○ RET♪◙SR32 00000340 20 20 20 45 4E 44 50 0D 0A 4F 55 52 5F 43 4F 44 45 20 20 45 4E 44 53 0D 0A 20 20 20 20 20 20 45 ENDP♪◙OUR_CODE ENDS♪◙ E 00000360 4E 44 20 20 20 20 20 20 20 53 52 33 32 0D 0A 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ND SR32♪◙→................