IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Задачка на assembler (https://www.imho.ws/showthread.php?t=96207)

modest 20.11.2005 21:00

Задачка на assembler
 
Есть задачка на на ассемблере: сформировать одномерный массив А= {ai} (i=1...40) где ai вычисляется по формулам: ai= (3*i*i+10)/5 + i/3 0<i<41. Я тут набросал исходник, но что-то он не работает. Подскажите что я тут не правильно сделал.

Код:

sseg segment stack
    db 64 dup(" ")
sseg ends
data segment
    mas dw 40 dup ("?")
    count dw 1
data ends
cseg segment
    assume cs:cseg,ds:data,ss:sseg
start:
    mov ax,data
    mov ds,ax       
    mov ax,0
    mov dx,0
    mov di,0
m1: mov bx,count
    cmp bx,41
    je m2
    mov ax,3
    mul bx
    mul bx
    add ax,10
    mov dx,5
    div ax
    push ax
    mov dx,count
    mov ax,3
    div ax
    mov ax,cx
    pop dx
    add cx,dx
    mov di,count
    mov mas[di],ax
    inc count
    jmp m1
m2: mov ax,4C00h
    int 21h
cseg ends
    end start


Andrewpg 20.11.2005 22:49

1) div ax - ты же делишь ax на ax! И в результате - 1.
2) div делит число dx:ax ! Т.е. dx должен быть равен 0 перед делением!

modest 21.11.2005 23:45

И как же мне поделить число размером в 2 байта (в АХ) на DX ??? Чего-то я запутался :молись:

Madness 21.11.2005 23:56

modest
>И как же мне поделить число размером в 2 байта (в АХ) на DX ???
div

Willow 22.11.2005 02:34

А что тебя заставляет делить ax на dx? Дели на SI.
Xor DX,DX
Mov SI,5
DIV SI


Часовой пояс GMT +4, время: 15:00.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.