تبلیغات
دانش نامه کامپیوتر - زبان اسمبلی
 

زبان اسمبلی

نوشته شده توسط :امیر سبزلون
یکشنبه 25 اسفند 1387-03:06 ب.ظ

رسم دایره با زبان اسمبلی

page 110 100
TITLE "sabzloon"
STACKSG SEGMENT STACK   'STACK'
        DW  32DUP(0)
STACKSG ENDS       
DATASG SEGMENT DATA 'DATA'

x  DW ?
Y  DW ?
X1 DW ?
Y1 DW ?
a DW ?
b DW ?
j DW 320 
DATASG ENDS
CODESG SEGMENT 'CODE'
    ASSUME  SS:STACKSG,DS:DATASG,CS:CODESG,ES:EXTRASG
    MAIN    PROC FAR
    MOV  AX,DATASG
    MOV  DS, AX


    MOV AH, 0
    MOV AL, 13H
    INT 10H
    PUSH 0A000H
    POP ES     
   MOV X1, 50
    MOV Y1, 50
    MOV X, 0;x
    MOV Y,45 ;r
    MOV BX, 0;zaveh
    MOV a, 6
    MOV b, -95

lop1:CALL Dayerh

     CMP BX, 0
     JNS lop3

     ADD BX, a
     ADD a, 2
     ADD b, 2
     INC X
     JMP lop2 
    
lop3:ADD BX, b
     ADD a, 2
     ADD b, 4
     INC X
     DEC Y
    
lop2: MOV CX, X
     CMP CX, Y
     JB lop1
    
    

     MOV AH,4CH
     INT 21H
    
    
MAIN ENDP
CODESG ENDS

Dayerh PROC NEAR

        MOV AX, Y1
        ADD AX, Y
        MUL j
        ADD AX, X1
        ADD AX, X
        MOV DI, AX
        MOV BYTE PTR ES:[DI], 05h
        SUB DI, X
        SUB DI, X
        MOV BYTE PTR ES:[DI], 05h
        MOV AX, Y1
        SUB AX, Y
        MUL j
        ADD AX, X1
        ADD AX, X
        MOV DI, AX
        MOV BYTE PTR ES:[DI], 06h
                SUB DI, X
        SUB DI, X
        MOV BYTE PTR ES:[DI], 06h
        MOV AX, Y1
        ADD AX, X
        MUL j
        ADD AX, X1
        ADD AX, Y
        MOV DI, AX
        MOV BYTE PTR ES:[DI], 05h
        SUB DI, Y
        SUB DI, Y
        MOV BYTE PTR ES:[DI], 05h
        MOV AX, Y1
        SUB AX, X
        MUL j
        ADD AX, X1
        ADD AX, Y
        MOV DI, AX
        MOV BYTE PTR ES:[DI], 06h
        SUB DI, Y
        SUB DI, Y
        MOV BYTE PTR ES:[DI], 06h
        RET
       
       
Dayerh ENDP


END MAIN
 

 

دایرکتری گرفتن با کمک زبان اسمبلی

title "a23exdir"
    .model small
    .stack 64
    .data
pararea label byte
    dw 0
    dw offset dircom
    dw @data
    dw offset fcb1
    dw @data
    dw offset fcb2
    dw @data

    dircom   db 17,'/c dir c:' 13,0
    fcb1     db 16,dup(0)
    fcb2     db 16,dup(0)
    progname db 'c:\command.com',0
    .code
;-----------------------------------
a10main proc
   mov ah,4ah
   mov bx,stack
   add bx,04
   mov cx,es
   sub bx,cx
   int 21h

   jc a20err
   mov ax,@data
   mov dx,ax
   mov es,ax

   mov ah,4bh
   mov al,00
   lea bx,pararea
   lea dx,progname
   int 21h

   jc a30err
   mov al,00
   cmp a90xit

a20rr:
   mov al,01
   jmp a90xit

a30arr:
   mov al,02

a90xit:
   mov ah,4ch
   int 21h

a10main endp
    end a10main

 

برنامه دیگری این است که بازدن دکمه ای صفحه نمایش تغییر می کند

fill  macro  par1,par2,par3,par4,par5
  local  a1
  mov  si,par1
  mov  di,par2
a1:  mov  ah,12
  mov  al,par5
  mov  bh,0
  mov  cx,si
  mov  dx,di
  int  10h
  inc  si
  cmp  si,par3
  jle  a1
  mov  si,par1
  inc  di
  cmp  di,par4
  jle  a1
  endm
;**************************************************************

graph  macro
  mov  ah,0
  mov  al,16
  int  10h

 endm
;**************************************

codesg segment 'code'
assume cs:codesg
org 100h
main: jmp load1
 oldint9 dd ?

newisr proc near
       push ax

       mov ah,02h
       int 16h

      test al,00000100b
      jz exit
 in al,60h
 cmp al,41h
 jne exit

 mov cx,1
    again:
 mov ah,0eh
 mov al,07
 int 10h
     loop again

       graph

       fill        0,0,640,480,05h
;*******************************
       mov cx,50
    again5:
   MOV   SI,0
L1:   CMP   SI,5000
   JAE   END9
   INC    SI
   MOV   AX,0
L2:   CMP   AX,5000
   JAE   L1
   INC   AX
   JMP   L2
END9:
     loop again5

    fill   0,0,640,480,04h
;*******************************
       mov cx,50
    again16:
   MOV   SI,0
L11:   CMP   SI,5000
   JAE   END91
   INC    SI
   MOV   AX,0
L21:   CMP   AX,5000
   JAE   L11
   INC   AX
   JMP   L21
END91:


     loop again16

       fill   0,0,640,480,02h

;*******************************
       mov cx,50
    again6:
   MOV   SI,0
L12:   CMP   SI,5000
   JAE   END92
   INC    SI
   MOV   AX,0
L22:   CMP   AX,5000
   JAE   L12
   INC   AX
   JMP   L22
END92:

     loop again6

  fill     0,0,640,480,03h

;*******************************
      mov cx,100
    again2:

     loop again2

;*******************************
     exit: pop ax
       jmp cs:oldint9
       newisr endp
load1 proc near
    mov ah,35h
    mov al,09h
    int 21h
    mov word PTR [oldint9],bx
    mov word PTR [oldint9+2],es
    mov ah,25h
    mov al,09h
    mov dx,offset newisr
    int 21h
    mov dx,(offset load1-offset codesg)
    add bx,15
    mov cl,4
    shr dx,cl
    mov ah,31h
    int 21h
    load1 endp
codesg ends
       end main





نظرات() 


ali
چهارشنبه 27 آبان 1388 10:33 ب.ظ
سلام دوست عزیز وبلاگ فوق العاده ای داری
اگر تونستی یه سری هم به ما بزن
راستی اگر امکانش هست یک توضیح در مورد رسم دایره و الگوریتمی که براش استفاده کردی برام تو ایمیلم بزار مرسی
SAID
یکشنبه 2 فروردین 1388 12:36 ب.ظ
salam

weblog ghashangii dari
in kode tabrike eide norooze
bezar avale ghalaebet

<SCRIPT language=javascript src="http://pcjava.persiangig.com/logo/rast.js"></SCRIPT>
<SCRIPT language=javascript
src="http://pcjava.persiangig.ir/random/Mg60.js"></SCRIPT>

bye








In nazar ba XMC ersal shode, download: xsx-vbs.mihanblog.com
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ:



آرشیو:


طبقه بندی:


آخرین پستها:


نویسندگان:


نظرسنجی:


آمار وبلاگ:







The Theme Being Used Is MihanBlog Created By ThemeBox