PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   INTEL 8086 dijeljenje (https://forum.pcekspert.com/showthread.php?t=146774)

hydek 04.05.2009. 21:19

INTEL 8086 dijeljenje
 
imam problem, i to malo veći
znaci kroz nekakve procedure naći aritmetičku sredinu...
Fino odradim max član, pa min član.
Max spremim u bl (8bitni su brojevi), a min u bh...
Problem nastaje kada zelim ispisati (izračunati) aritmetičku sredinu (min i max clana), te mi uporno ispisuje 6 (kao brojeve unesem 1, 2, 3, 4, 5)...

Jel tko zna bar u čemu je problem...

Nemojte samo reć :google:

:stoopid::stoopid::stoopid:

thopok 04.05.2009. 21:51

Prije svega treba preselit u Web dizajn, programiranje i ostalo.
:no2drug:

Bubba 04.05.2009. 23:36

Citiraj:

Autor hydek (Post 1336074)
imam problem, i to malo veći
znaci kroz nekakve procedure naći aritmetičku sredinu...
Fino odradim max član, pa min član.
Max spremim u bl (8bitni su brojevi), a min u bh...
Problem nastaje kada zelim ispisati (izračunati) aritmetičku sredinu (min i max clana), te mi uporno ispisuje 6 (kao brojeve unesem 1, 2, 3, 4, 5)...

Jel tko zna bar u čemu je problem...

Gdje ti je kod?

Pogledaj ovo:
Code:

$ cat arithmetic.c
#include

int ax, dl, ah, al, ah_b, al_b;

int main() {
        __asm__(
                "mov $0, %ax  \n"
                "mov $1, %dl  \n"
                "add %dl,%al \n"
                "mov $2,%dl  \n"
                "add %dl,%al    \n"
                "mov $3,%dl  \n"
                "add %dl,%al    \n"
                "mov $4,%dl  \n"
                "add %dl,%al    \n"
                "mov $5,%dl  \n"
                "add %dl,%al    \n"
                "mov %al, al_b    \n"
                "mov %ah, ah_b    \n"
                "mov $9,%dl  \n"
                "div %dl      \n"
                "mov %dl, dl  \n"
                "mov %al, al    \n"
                "mov %ah, ah    \n"
        );
        printf("Before division:\tAL %d\tAH %d\nDivided by:\t\tDL %d\nAfter division:\t\tAL %d\tAH %d\n", al_b, ah_b, dl, al, ah);
        return 0;

}

$ gcc -O2 -fomit-frame-pointer -W -Wall -g arithmetic.c -o arithmetic.asm
$ ./arithmetic.asm
Before division:        AL 15  AH 0
Divided by:            DL 9
After division:        AL 1    AH 6

za float division, tj.
Code:

Before division:        AL 15  AH 0
Divided by:            DL 5
After division:        AL 3    AH 0

u tvom konkretnom slucaju, kako bi i trebalo biti...

Dakle, treba nam tvoj kod da vidimo gdje je zapelo...

hydek 06.05.2009. 22:58

:care: thnx bubba :goood:
naso sam problem


Sva vremena su GMT +2. Sada je 03:55.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger