Субота
20.04.2024
02:34
 




 
Ви зайшли як Призовник | Група "Гости" | RSSГоловна | Асемблер - Форум | Мій профіль | Вихід
[ Приватні повідомлення () · Нове оповіщення · Учасники · Правила форуму · Пошук · RSS ]
  • Сторінка 1 з 1
  • 1
Модератор форуму: Magnum36  
Форум » На всі смаки і погляди » Компютери та ПО » Асемблер (Найнижча мова програмування)
Асемблер
kleoo-svituloДата: Неділя, 26.10.2008, 00:01 | Повідомлення # 1
Admin
Група: Администраторы
Повідомлень: 170
Репутація: 3
Статус: Offline
Давайте поговорим про дану мову програмування...про її можливості та методи застосування...
Викладаймо різні типи програм на даній мові і короткий опис її функції...

ВИКЛАДУ ДЛЯ ПОЧАТКУ ЛАБОРАТОРКИ З Системного програмування (1.2.)

Code
Лаба 1

розбирання в командах(загально)

StackS    SEGMENT    PARA    STACK    'Stack'
StackS    ENDS
CodeS    SEGMENT    BYTE    PUBLIC    'Code'
ASSUME    cs:CodeS, ss:StackS
@BYTE PROC    NEAR   ; визначення типу процедури
push    bp   ; занесення значення bp в АХ
mov    bp, sp   ; переміщення значення sp в bp
mov    ax, [bp + 4]   ; переміщення значення зміщення адреси [bp + 4] в ax
mov    di, [bp + 6]  ; переміщення значення зміщення адреси [bp + 6] в di
mov    cl, 10   ; занесення значення 10 в cl
xor    dx, dx   ; обнулення регістру dx
@while:cmp    al, cl  ; перевірка чи al містить значення cl
jb    @exit   ; якщо значення вірне то перехід на @exit
xor    ah, ah   ; інакше обнуління ah
div    cl   ; ділення cl на al
or    ah, 30h   ; порівняння регістрів методом логічного або
mov    [di], ah   ; переміщення ah в адресу [di]
dec    di   ; зменшення di на 1
inc    dx   ; збільшення dx на 1
jmp    short @while  ; перехід на адресу мітки @while
@exit:      ; мітка виходу з програми
or    al, 30h   ; порівняння регістрів методом логічного або
mov    [di], al   ; переміщення al в адресу [di]
inc    dx   ; збільшення dx на 1
mov    cx, 3   ; занесення значення 3 в cx
sub    cx, dx   ; віднімання dx від cx
jz    @real_exit  ; умовний перехід на мітку @real_exit
@zeros:
dec    di   ; зменшення di на 1
mov    [di], byte ptr '0'             ; звернення до частини змінної
loop    @zeros               ; перехід циклу до мітки @zeros
@real_exit: mov    ax, dx   ; переміщення значення dx в ax
pop    bp   ; виймання слів із стеку bp
ret    ; повернення з підпрограми
@BYTE NDP   ; завершення мітки @BYTE
PUBLIC    @BYTE                         ; визначення ідентифікатора мітки @BYTE
Codes    ENDS   ; кінець сегмента
END    ; завершення програми

Code
Лаба 2

Ввід і вивід тексту на екран...

DANI SEGMENT
SOSO DB 50
DANI ENDS
COD SEGMENT
ASSUME CS:COD; DS:DANI
ORG 100H
BEGIN:
xor cx,cx
xor dx,dx
xor ax,ax
xor bx,bx
@ARNI:
mov ah,1h
int 21h
cmp al,13
je @TAK
mov soso[bx],al
inc bx
inc cx
jmp @ARNI
@TAK:
xor bx,bx
@Y:
mov dl,10
mov ah,2
int 21h
mov dl,13
mov ah,2
int 21h
mov dl,soso[bx]
mov ah,2
int 21h
inc bx
dec cx
cmp cx,0
jne @Y
@NO:
mov ah,4ch
int 21h
COD ENDS
END BEGIN


Все буде добре! Якщо тільки захотіти!!!

 
connectДата: Неділя, 26.10.2008, 00:41 | Повідомлення # 2
Курсант
Група: Пользователи
Повідомлень: 6
Репутація: 1
Статус: Offline
До речі, ось знайшов книжечку про те, як писати ВІРУСИ на асемблері. По ній можна курсову робити)))

Щастя - всього лиш хороше здоров'я, і погана пам'ять
 
kleoo-svituloДата: Неділя, 26.10.2008, 00:47 | Повідомлення # 3
Admin
Група: Администраторы
Повідомлень: 170
Репутація: 3
Статус: Offline
Що точно? Це круто! А ти по чому писати думаєш? surprised

Все буде добре! Якщо тільки захотіти!!!

 
connectДата: Неділя, 26.10.2008, 01:03 | Повідомлення # 4
Курсант
Група: Пользователи
Повідомлень: 6
Репутація: 1
Статус: Offline
Quote (connect)
Що точно? Це круто! А ти по чому писати думаєш?

Можливо на Сі, але це вже по обставинах....
P.S. Нарив ше прогу, яка по теорії має чистити пароль на біос:
Code
mov dx, 070h
mov al, 02Eh
out dx, al  
inc dx  
xor al, al  
out dx, al
mov dx, 070h
mov al, 02Fh  
out dx, al
inc dx  
xor al, al  
out dx, al  
mov ax,4C00h  
int 21h


Щастя - всього лиш хороше здоров'я, і погана пам'ять
 
kleoo-svituloДата: Неділя, 26.10.2008, 02:22 | Повідомлення # 5
Admin
Група: Администраторы
Повідомлень: 170
Репутація: 3
Статус: Offline
Ось надибав пару книжечок по Асемблеру:
Code
http://www.proklondike.com/file/Assembler/Piter_Abel_-_Assembler(RUS).rar

В цій книзі має бути багато прикладів в вигляді готових колів програмок... happy
Code
http://www.proklondike.com/file/Assembler/VPirogov_-_Assembler_for_Windows(RUS).rar

і -3-


Все буде добре! Якщо тільки захотіти!!!

 
kleoo-svituloДата: Понеділок, 29.12.2008, 01:36 | Повідомлення # 6
Admin
Група: Администраторы
Повідомлень: 170
Репутація: 3
Статус: Offline
4-та лаба

Завдання.
Написати програму для обрахування факторіалу в розмірі до 99.

Code
DANI SEGMENT
SOS DB 40
DANI ENDS
COD SEGMENT
ASSUME CS:COD, DS:SISI
ORG 100H
BEGIN:
  xor ax,ax
  xor bx,bx
  xor dx,dx
  xor cx,cx
@ARNI:
  mov ah,1
  int 21h
  cmp al,13
  je @SS
  mov bl,al
  xor bl,00110000
  cmp al,13
  je @SS
  mov bl,al
  xor bl,00110000
  xor bx,bx
  mov bl,10
  div bl
  add al,ah
  xor bx,bx
  mov cl,1  
  mov bl,al
  mov al,bl
@Repit:
  dec al
  mol bl
  dec bl
  mov dx,ax
  xor ax,ax
  mov al,bl
  cmp al,0
  je @SS
  jmp @Repit
   
@SS:
  mov ah,9
  int 21h
  mov ah,4ch
  int 21h
COD ENDS
END BEGIN


Все буде добре! Якщо тільки захотіти!!!

 
Форум » На всі смаки і погляди » Компютери та ПО » Асемблер (Найнижча мова програмування)
  • Сторінка 1 з 1
  • 1
Пошук:

Copyright MyCorp © 2024
Хостинг від uCoz




Музика