View Single Post
Staro 04.05.2009., 23:36   #3
Bubba
E Pluribus UNIX
Moj komp
 
Bubba's Avatar
 
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,750
Citiraj:
Autor hydek Pregled postova
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 <stdio.h>

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...
__________________
https://2.71828182845904523536028747...966967627.com/

Programer
Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest.
Bubba je offline   Reply With Quote