Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Assembler, Задачки 
:(
    Опции темы
try_to_get
  Дата 26.8.2007, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 426
Регистрация: 19.3.2007
Где: Россия

Репутация: нет
Всего: 2



Не порядок  smile 
Задачки по языкам C++, Pascal и т.д. есть, а по языку Assembler нету.
Так вот, в этом топике будут находиться задачки по Ассемблеру.
Если у кого, есть задачи на эту тему, прошу выкладывать здесь.
Модераторам: если можно закрепите тему.
Спасибо!


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
Pakshin A. S.
Дата 27.8.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Цитата(try_to_get @  26.8.2007,  11:10 Найти цитируемый пост)
Модераторам: если можно закрепите тему.

Зафиксировано.


M
Pakshin A. S.
Все оффтопы будут удалять без особых разъяснений!

PM   Вверх
PPS05
Дата 4.1.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Может, известная вещь, но все-таки:

Цитата
Есть процедура, которая устанавливает флаг переноса, если происходит ошибка и очищает его, если таковой не произошло:

Код

noerr:  clc                                     ; 1 байт
        jmp     exit                            ; 2 байта
error:  stc                                     ; 1 байт
exit:   ret                                     ; 1 байт

А как обойтись всего тремя байтами?


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
Akina
Дата 4.1.2008, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 2
Всего: 453



Цитата(PPS05 @  4.1.2008,  20:02 Найти цитируемый пост)
как обойтись всего тремя байтами? 

Не трогая содержимого регистров?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
PPS05
Дата 5.1.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Цитата(Akina @  4.1.2008,  22:42 Найти цитируемый пост)
Не трогая содержимого регистров?

Ага. smile 


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
PPS05
Дата 9.1.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: нет
Всего: 7



Ну, так как нет ответов:

Код

 noerr: test    al,00h                          ; 1 байт \
        org     $-1                             ;         > TEST AL,0F9H
 error: stc                                     ; 1 байт /
        ret                                     ; 1 байт


Это сообщение отредактировал(а) PPS05 - 9.1.2008, 19:41


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
Akina
Дата 9.1.2008, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 2
Всего: 453



только не TEST AL,0AAH, а TEST AL,0F9H (0AAh = stosb)
 



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
KTyJLXy
Дата 2.10.2011, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.10.2011

Репутация: нет
Всего: нет



Маленькая прога, шифрующая .txt через XOR со свитчами /s /d шифрование и дешифрование соотвественно.
Код

CODE SEGMENT
ORG 100h
ASSUME cs:code, ds:code

Main:
  mov dx, OFFSET cmdline
  call CmdTail 
  mov si, dx
  mov di, OFFSET param
  
  Pass:
    movsb
    cmp byte ptr [si], 20h
    jne Pass
  
  add si, 1
  mov di, OFFSET filename
  
  Repeat:
    movsb
    cmp byte ptr [si], 0
    jne Repeat
  ; ------------------------------------
  ; Open file                          
  ; ------------------------------------
  mov ah, 3Dh   
  mov al, 02h
  mov dx, OFFSET filename
  int 21h
  jc Error
  mov filenum, ax  

  ; ------------------------------------
  ; Read file
  ; ------------------------------------
  mov ah, 3Fh
  mov bx, filenum
  mov cx, bufsize
  mov dx, OFFSET buffer
  int 21h
  jc Error
  mov filesize, ax

  ; ------------------------------------
  ; Close file
  ; ------------------------------------
  mov ah, 3Eh
  mov bx, filenum
  int 21h
  jc Error

  ; ------------------------------------
  ; XOR encryption / decription
  ; ------------------------------------
  mov di, 0
  mov si, 0
  mov bx, OFFSET buffer
  
  Iter:
    xor ax, ax
    mov al, [bx + si]
    xor al, key
    mov [bx + si], al
    add si, 1
    add di, 1
    cmp di, filesize
    jne Iter                                               
 
  mov ah, 3Ch   
  mov al, 02h
  mov dx, OFFSET filename
  int 21h
  jc Error
  mov filenum, ax  
 
  ; ------------------------------------
  ; Write buffer to file
  ; ------------------------------------
  mov ah, 40h
  mov bx, filenum
  mov cx, filesize
  mov dx, OFFSET buffer
  int 21h
  jc Error
    
  ; ------------------------------------
  ; Close file
  ; ------------------------------------
  mov ah, 3Eh
  mov bx, filenum
  int 21h
  jc Error
  jmp Exit

Error:
  mov ah, 09h
  mov dx, OFFSET message
  int 21h

Exit:
  mov ah, 08h
  int 21h
  int 20h

  cmdline DB 129 DUP (?)
  param DB 20 DUP (0)
  filename DB 20 DUP (" "),0
  filenum DW 0
  filesize DW 0
  bufsize = 1024
  buffer DB bufsize DUP (0)

  key DB 117

  message DB "Error!", '$'

include CmdTail.inc
CODE ENDS
END Main

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.1344 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.