. , , .
UPDATE:
Mac OS X, Intel 64. :
a.asm
: yasm -f macho64 a.asm
SECTION .text
global _bmod, _bmin
_bmod: push rdx
push rbx
mov rcx, 1000000000
mov rdi, 5
mov rsi, 4
.bmod: mov rax, rdi
mov rbx, rsi
xor rdx, rdx
div rbx ; div instruction stores the mod in rdx.
dec rcx
jnz .bmod
pop rbx
pop rdx
ret
_bmin: push rdx
push rbx
mov rcx, 1000000000
mov rdi, 5
mov rsi, 4
.bmin: mov rax, rdi
mov rbx, rsi
sub rax, rbx
dec rcx
jnz .bmin
pop rbx
pop rdx
ret
a.c
: gcc -m64 a.c a.o
#include <time.h>
#include <stdio.h>
void bmod();
void bmin();
main() {
time_t timex,timex2;
time(&timex);
bmod();
time(&timex2);
printf("Mod: %d\n", timex2 - timex);
time(&timex);
bmin();
time(&timex2);
printf("Min: %d\n", timex2 - timex);
}
, MacBook Air:
Mehrdad-Air:~ Mehrdad$ yasm -f macho64 a.asm
Mehrdad-Air:~ Mehrdad$ gcc -m64 -O0 a.c a.o
Mehrdad-Air:~ Mehrdad$ ./a.out
Mod: 14
Min: 2
, , .