Download הדואר של שלמה יוזף:

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Law of large numbers wikipedia , lookup

Location arithmetic wikipedia , lookup

Positional notation wikipedia , lookup

Addition wikipedia , lookup

Elementary mathematics wikipedia , lookup

Transcript
:‫הדואר של שלמה יוזף‬
The first part of the assembly question divedes 401h+CL words from DS:SI (SI
is equal to 400h+CL) (the first word is AX) by BP and puts it in ES:DI (DI is
equal to 400h+CL) then it adds 1 to the first word at DS:SI which equals to
is 2^(16384+CL*16) in the 400h words variable and decreaces BP and the process
is repeated until BP is 1 so DS:SI is by D229h larger the it was and 400h+CL
words are copied to ES:DI but the word at ES:DI is smaller by one then DS:SI
because the increace is after the copy. then DS:SI is printed in binary digits.
If ES is equal to DS then DS:SI is equal at the end to the first 401h+CL diveded
by D229h! plus
2^(16384+CL*16)/D228h!+2^(16384+CL*16)/D227h!+...+2^(16384+CL*16)/6+2^(16384+CL*
16)/2.
:)13.11.2000( ‫ותוספת‬
I think that the assembly question adds to the fixed-point (one word before
the point, the next after) column the first 0xD00 (assuming DX is 0 at the beginning)
word number from the beginning at DS:SI (SI is probably the input, the place
from which the number is taken) and divedes it by 0xD229!. Then it prints it,
bit by bit. ES must be equal to DS so it will work.
:‫) של שלמה יוזף‬C) ‫הדואר‬
The answer to the C question is that there are 5 5 bit numbers and it uses bubble
sort to sort the numbers. t is the difference between i and i+1 (A(i)-A(i+1)+16).
the most significent bit is if the two numbers should be replaced. the ending
term isolates the difference bits so if no replace should be done the program
ends (it substract one from each number (by using -(a>>4)) so if the difference
is zero it won't go into an infinite loop. by using the m it makes sure that
there won't be an overflow so it always isolates two non touching numbers difference
bits (once 0x80200, the next 0x4010), shifts them right by 4 bits so each number
is one (instead of 16), multiplys it by 15 so all bits of the difference (without
the difference bit) are selected with t, add the difference is multiply by 31
which is 32-1 which means the the difference is shifted 5 bits to the left so
its added to the lower number and it is substracted from the higher number so
the numbers are replaced.