Intel 어셈블리 명령 DIV 구현

1454 단어 div
한 편의 글을 보면 AVR에서 intel 어셈블리daa 명령을 실현할 수 있다.마침 나는 라는 책을 보았는데, 위에서 정점 제곱법을 설명하였다.그리고 나도 이루어졌어.
#include <stdio.h>

unsigned int my_div(unsigned int *src,unsigned int dst);

int main()

{



        unsigned int src = 100;

	unsigned int dst = 7;

	

	unsigned int out;

	out = my_div(&src,dst);

	

	printf("out:= %d 
src:= %d", out,src); return 0; } /* * *src = *src mod dst * return *src/dst */ unsigned int my_div(unsigned int *src,unsigned int dst) { unsigned int tmpsrc = *src; unsigned int dstcount = 0; unsigned int srccount = 0; unsigned int tmp; unsigned int left; unsigned int out = 0; tmp = tmpsrc; while(tmp) { srccount++; tmp = tmp>>1; } printf("srccount:%d
",srccount); tmp = dst; while(tmp) { dstcount++; tmp = tmp>>1; } printf("dstcount:%d
",dstcount); left = srccount - dstcount+1; printf("left:%d
",left); while(left--) { printf("xx
"); printf("tmpsrc>>left:%x
",tmpsrc>>left); printf("dst:%x
",dst); if((tmpsrc >> left) > dst) { printf("int >: 1<< left
",dst<<left); out |= 1<<left;//set out tmpsrc-=dst<<left; } printf("
"); } *src = tmpsrc; return out; }

좋은 웹페이지 즐겨찾기