منصور بهزادی

مهندسی تکنولوژی نرم افزار کامپیوتر

منصور بهزادی

مهندسی تکنولوژی نرم افزار کامپیوتر

پروژه تبدیل مبنا های 10،8،2،16 به یکدیگر با اسمبلی

این برنامه را با زبان اسمبلی تو محیط امولیتور 8086 نوشتم. کار این دو تا برنامه تبدیل مبناها به هم هست برنامه اولی از عدد دریافتی را از مبنای 10 به مبنایی هر عددی حتی 7، 11 ووو تبدیل می کند. برنامه دومی یک عدد در مبنای 10 می گیرد و مبنای 2،8،16 اون عدد رو چاپ می کنه. می خواستم این تو تا کد را با هم ادغام کنم ولی حوصله نداشتم.
به هر حال امیدوارم بدردتون بخوره (تقدیم به جامعه برنامه نویسان کشور عزیزم) سرس در ادامه مطلب هست!
درصورتی که برنامه دیگری با اسمبلی و دیگر زبان ها می خواهید می توانید از راه تماس با ما سفارس دهید.

کلید واژه ها:

دانلود رایگان پروژه اسمبلی . دانلود رایکان پروژه تبدیل مبنا در اسمبلی . دانلود رایگان پروژه Assembly . پروژه تبدیل مبنا از 8 به 10 از 10 به هشت با اسمبلی . پروژه تبدیل مبنا از 2 به 10 از 10 به دو با اسمبلی . پروژه تبدیل مبنا از 16 به 10 از 10 به شانزده با اسمبلی . پروژه تبدیل مبنا از دو به 10 از 10 به باینری با اسمبلی . سرس کد رایگان اسمبلی . کار با مبناها در اسمبلی .سرس کد رایگان assembly


این برنامه را با زبان اسمبلی تو محیط امولیتور 8086 نوشتم. کار این دو تا برنامه تبدیل مبناها به هم هست برنامه اولی از عدد دریافتی را از مبنای 10 به مبنایی هر عددی حتی 7، 11 ووو تبدیل می کند. برنامه دومی یک عدد در مبنای 10 می گیرد و مبنای 2،8،16 اون عدد رو چاپ می کنه. می خواستم این تو تا کد را با هم ادغام کنم ولی حوصله نداشتم.
به هر حال امیدوارم بدردتون بخوره (تقدیم به جامعه برنامه نویسان کشور عزیزم)
درصورتی که برنامه دیگری با اسمبلی و دیگر زبان ها می خواهید می توانید از راه تماس با ما سفارس دهید.

از بقیه مبناها به 10

; tabdil mabna az har adadi be 10
; programer mansoor behzadi from Iran(persia),Fars,Firoozabad
;src: www.behzadim.ir

data segment
    ; add your data here!
    msg1 db "marnameye tabdile mabna!$"
    msg2 db "in barnam yek adad dar mabnahaye 8 , 16 , 2 ra daryaft mikonad va moadel desimal an ra chap mikonad.$"
    msg3 db "mahdoode adad vared shode dar mabnahaye 2 va 8 2bite dar mabnaye 16 1bite ast.$"
    msgmabna db "az mabnaye chand be 10?$"
    msgin db "adad dar mabnaye mored nazar ra vared kon(ba tavajoh be mahdood):$"
    num dw 0
    mabna db 0
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

     
      lea dx, msg1
      mov ah, 9
      int 21h 
      call enter
      lea dx, msg2
      mov ah, 9
      int 21h  
      call enter
      lea dx, msg3
      mov ah, 9
      int 21h
      call enter
     
      lea dx, msgmabna
      mov ah, 9
      int 21h
     
      call sdlet
      mov mabna,dl
      call Enter        
                 
      lea dx, msgin
      mov ah, 9
      int 21h     
     
      mov ah,01h
      mov bx,0 
      mov cx,0
      mov si,0
      mov al,30h
      mov dx,0
      inputnumber1:
     
     
      int 21h
      mov bl,al
      mov bh,0
      push bx
      add si,1
      cmp al,13
      jne inputnumber1
      sub si,1

  
      mov cl,1
      pop bx
      mov dx,0
      convertston1:
     
      pop bx
      cmp bl,'a'
      jnge con1
      sub bl,'a'
      add bl,10
      jmp con2
      con1:
      sub bl,30h
      con2:
      mov al,cl
      mul bl
      add dl,al
     
      mov ax,cx
      mov cl,mabna
      mul cl
      mov cx,0
      mov cl,al

     
      sub si,1
      cmp si,0
      jne convertston1
      mov num,dx
     
endsdlet1: 
    call Enter 
    mov dx,num
    call gdxet


   
    ; wait for any key....   
    mov ah, 1
    int 21h
   
    mov ax, 4c00h ; exit to operating system.
    int 21h   
ends
   
sdlet proc near
push ax
push si
push bx
push cx

      mov ah,01h
      mov bx,0
      mov cx,1
      mov si,0
      mov al,30h
      mov dx,0
      inputnumber:
     
      cmp al,30h
      jl endsdlet
      cmp al,39h
      jg endsdlet
     
      int 21h
      mov bl,al
      mov bh,0
      push bx
      add si,1
      cmp al,13
      jne inputnumber
      sub si,1

      pop bx
      convertston:
     
      pop bx
      sub bl,30h
      mov al,cl
      mul bl
      add dl,al
     
      mov al,10
      mul cl
      mov cl,al
     
      sub si,1
      cmp si,0
      jne convertston
   
     
endsdlet:

pop cx
pop bx   
pop si
pop ax
ret
sdlet endp
   
Enter proc near  
push ax
push si
push bx
push cx

mov ah,3
int 10h
mov dl,0
inc dh
mov ah,2
int 10h
       
pop cx
pop bx   
pop si
pop ax
ret       
Enter endp

gdxetproc near
push ax
push si
push bx
push dx

      cmp dx,9
      jle takraghami
      mov bx,0

      mov si,0
      taghsimat:
      mov ax,dx
      mov dl,10
      div dl
      mov bl,ah
      push bx
      mov ah,0
      mov dx,ax
      add si,1
      cmp dx,9
      jg taghsimat
      takraghami:
      add si,1
      push dx
     
      outputnumber:
      pop dx
      add dx,30h
      mov ah,02h
      int 21h
      sub si,1
      cmp si,0
      jg outputnumber

pop dx
pop bx   
pop si
pop ax
ret
gdxet endp

end start ; set entry point and stop the assembler.


از ده به بقیه مبناها

; tabdil mabna az 10  be har adadi
; programer mansoor behzadi from Iran(persia),Fars,Firoozabad
;src: www.behzadim.ir

data segment
    ; add your data here!
    pkey db "press any key...$"
    msgin db "adad dar mabnaye 10 ra vared konid:$"
    num db 0
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ;......................................
    lea dx,msgin ;daryaft adad dahdahi
    mov ah,9
    int 21h    
    call sedl
    mov num,dl
    call Enter
   
    mov cx,0  ; 10 to 2
    mov cl,num
    mov di,0
    loop10to2:
    mov ax,cx
    mov bx,2
    div bl
    cmp al,1
    jg con1
    mov dx,0
    mov dl,ah
    push dx
    inc di
    mov ah,0
    push ax
    inc di
    jmp con2
    con1:
    mov cl,al
    mov al,ah
    mov ah,0
    push ax
    inc di
    jmp loop10to2
    con2:
    call PrintPush
    call Enter
   
    mov cx,0   ;10 to 8
    mov cl,num
    mov di,0
    loop10to8:
    mov ax,cx
    mov bx,8
    div bl
    cmp al,7
    jg con3
    mov dx,0
    mov dl,ah
    push dx
    inc di
    mov ah,0
    push ax
    inc di
    jmp con4
    con3:
    mov cl,al
    mov al,ah
    mov ah,0
    push ax
    inc di
    jmp loop10to8
    con4:
    call PrintPush
    call Enter 
   
    mov cx,0   ;10 to 16
    mov cl,num
    mov di,0
    loop10to16:
    mov ax,cx
    mov bx,16
    div bl
    cmp al,15
    jg con5
    mov dx,0
    mov dl,ah
    push dx
    inc di
    mov ah,0
    push ax
    inc di
    jmp con6
    con5:
    mov cl,al
    mov al,ah
    mov ah,0
    push ax
    inc di
    jmp loop10to16
    con6:
    call PrintPush
    call Enter
   
   
    ;......................................
           
   
    ; wait for any key....   
    mov ah, 1
    int 21h
   
    mov ax, 4c00h ; exit to operating system.
    int 21h   
ends

PrintPush proc near
pop bx
st:
cmp di,0
je en
pop dx
cmp dx,9
jng conpp1
add dx,55
jmp conpp2
conpp1:
add dx,48
conpp2:
mov ah,2
int 21h
dec di
jmp st
en:  

push bx
ret
PrintPush endp   
 
Enter proc near  
push ax
push si
push bx
push cx

mov ah,3
int 10h
mov dl,0
inc dh
mov ah,2
int 10h
       
pop cx
pop bx   
pop si
pop ax
ret       
Enter endp

sedl proc near
push ax
push si
push bx
push cx

      mov ah,01h
      mov bx,0
      mov cx,1
      mov si,0
      mov al,30h
      mov dx,0
      inputnumber:
     
      cmp al,30h
      jl endsedl
      cmp al,39h
      jg endsedl
     
      int 21h
      mov bl,al
      mov bh,0
      push bx
      add si,1
      cmp al,13
      jne inputnumber
      sub si,1

      pop bx
      convertston:
     
      pop bx
      sub bl,30h
      mov al,cl
      mul bl
      add dl,al
     
      mov al,10
      mul cl
      mov cl,al
     
      sub si,1
      cmp si,0
      jne convertston
   
     
endsedl:

pop cx
pop bx   
pop si
pop ax
ret
sedl endp
 
end start ; set entry point and stop the assembler.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد