посмотрте код
Добавлено: 06 дек 2006, 15:02
написать программу,использующую процедуру вычисления двоичного представления числа S=0+1/5^1+1/5^2+1/5^3+...+1/5^N (n=8,10,20)
в вычисленияхудерживать 200 двоичных цифр.вывести на печаит первые 100 двоичных цифр.для организации вывода символов двоичных цифр использовать сдвиги бит
model tiny
masm
.386
.code
assume cs:@code,ds:@code,es:@code,ss:@code
org 100h
begin:
s db 42 dup(?) ;результат
ln_s=$-s
a db 42 dup(?) ;определение 2 массива
b db 42 dup(?) ;определение 1 массива
mov cl,42
mov si,offset s ; результат
mov di,offset a ; 2 массив
mov bx,offset b ; 1 массив
long dd 1 ;делимое
mov dx,word ptr long ; dx=0001h, старшая часть
; делимого
; ax=0000h , младшая часть
; делимого
xor ax,ax;
mov bl,5 ; делитель
push ds
pop es
divide:
div bl ;s=s/n
mov [si],al ;s---->()()()()
inc si
xor al,al
loop divide
tell:
cld ;s1=s
mov si,offset s ;
mov di,offset a ;
push di
mov cx,42 ;
rep movsb ;end s1=s
pop si
xor ah,ah
double:
push cx
mov al,[si] ; s1:=s1\n
div bl ; или bx
mov [si],ax
inc si
pop cx
loop double
dec si
mov di,offset s
add di,ln_s-1
clc
summ:
push cx
mov al,[di] ;сложение [di]+[si]
adc al,[si]
mov [si],al
dec si
dec di
pop cx
loop summ
pop cx
loop tell
end begin
народ подскажите как осуществить вывод ?
в вычисленияхудерживать 200 двоичных цифр.вывести на печаит первые 100 двоичных цифр.для организации вывода символов двоичных цифр использовать сдвиги бит
model tiny
masm
.386
.code
assume cs:@code,ds:@code,es:@code,ss:@code
org 100h
begin:
s db 42 dup(?) ;результат
ln_s=$-s
a db 42 dup(?) ;определение 2 массива
b db 42 dup(?) ;определение 1 массива
mov cl,42
mov si,offset s ; результат
mov di,offset a ; 2 массив
mov bx,offset b ; 1 массив
long dd 1 ;делимое
mov dx,word ptr long ; dx=0001h, старшая часть
; делимого
; ax=0000h , младшая часть
; делимого
xor ax,ax;
mov bl,5 ; делитель
push ds
pop es
divide:
div bl ;s=s/n
mov [si],al ;s---->()()()()
inc si
xor al,al
loop divide
tell:
cld ;s1=s
mov si,offset s ;
mov di,offset a ;
push di
mov cx,42 ;
rep movsb ;end s1=s
pop si
xor ah,ah
double:
push cx
mov al,[si] ; s1:=s1\n
div bl ; или bx
mov [si],ax
inc si
pop cx
loop double
dec si
mov di,offset s
add di,ln_s-1
clc
summ:
push cx
mov al,[di] ;сложение [di]+[si]
adc al,[si]
mov [si],al
dec si
dec di
pop cx
loop summ
pop cx
loop tell
end begin
народ подскажите как осуществить вывод ?