saghiya
سه شنبه 24 دی 1387, 23:31 عصر
سلام
می خواستم اگه کسی می تونه در نوشتن کد های این چند برنامه کمک کنه یا کدهاشو
برای من بذاره قبلا از کسانی که کمک میکنند خیلی خیلی ممنونم (خیلی فوری)
1- عدد n را بگیره فاکتوریل n , لگاریتم n در مبنای 2
loghmani
چهارشنبه 25 دی 1387, 22:23 عصر
این برنامه لگاریتم در پایه 2 است امیدوارم به دردت بخوره:چشمک:
org 100h
.model small
.data
msg1 db 13, 10, 'Enter the number: $'
msg2 db 13, 10, 'log of your number: $'
max db 80
len db ?
buf db 80 dup (?)
d db '$'
a db ' $'
.code
main proc
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, msg1
int 21h
mov ah, 10
lea dx, max
int 21h
mov bp, 0 ;sum
mov bl, len
mov bh, 0
dec bx ;bx = len - 1
cmp buf[0], '-'
jnz next
mov si, 1
jmp down
next: mov si, 0
down: mov cx, bx
sub cx, si
and buf[si], 0fh
mov dl, buf[si]
mov dh, 0
up: jcxz top
shl dx, 1
mov di, dx
shl dx, 1
shl dx, 1
add di, dx
mov dx, di
loop up
top: add bp, dx
inc si
cmp si, bx
jle down
mov ax, bp
mov bp, 0
up1: shr ax, 1
inc bp
cmp ax, 0
jnz up1
dec bp
mov ah, 9
lea dx, msg2
int 21h
mov ax, bp
call print
mov ax, 4c00h
int 21h
main endp
print proc
pusha
mov di, 4
mov cx, 10
x: mov dx, 0
div cx
add dl, '0'
mov a[ di ], dl
dec di
cmp ax, 0
jnz x
mov ax, 0
popa
mov ah, 9
lea dx, a
int 21h
ret
print endp
end main
ret
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.