seen to instruction DIV is 16bit divide by 8bit division instruction. but result is store to 8bit ACCA only.

how can i using this instruction when real 16/8?

seen to instruction DIV is 16bit divide by 8bit division instruction. but result is store to 8bit ACCA only.

how can i using this instruction when real 16/8?

Hi Ki Won Lee,

May be the below code could help you!

int x;

char y;

char z;

void main(void) {

...

x= 300;

y = 25;

__asm {

ldhx x;

lda y;

div

}

...

}

thanks Yong li interest my question.

i would give you ask one more time.

in your example code set x = 300 and y = 25 maybe get good result 12 in acca . what about y = 1?

acca result is 5?..... i don't understand this instruction..

It is very similar to how kids divide 2-digits numbers by 1-digit number on paper. They divide first digit, and then (one only) digit remainder * 10 + next digit. Difference is that we have now bytes instead of decimal digits, rules of math are the same.

unsigned short num= 300;

unsigned char denom = 25;

unsigned short quotient;

unsigned char remainder;

//DIV instruction H:A / X = A, rem H

__asm {

ldx denom

clrh

lda num:0; // first digit

div

sta quotient:0

lda num:1 // next digit

div

sta quotient:1

pshh

pula

sta remainder

}

**Hi. the instruction works like this: H:A / X. Must load the 16-bit value (dividend) in H:A as a single record and the divisor in X.****You can use the following:****Load H:X with LDHX instruction and pass the value of X to A. Then load X with the divider 8 bits.****Example:****LDHX #4532****TXA****LDX #34****DIV****The cocient in ACCA the remainder in H. thus, leading to 0 in A is a decimal add to divide again****Ej2. another way:****LDA #45****PSHA****PULH****LDA #32****LDX #34****DIV**EDiting: I saw a response HX / A. It's wrong. It's not how it works.

Hi Ki Won Lee,

May be the below code could help you!

int x;

char y;

char z;

void main(void) {

...

x= 300;

y = 25;

__asm {

ldhx x;

lda y;

div

}

...

}