- •«Пермский национальный исследовательский политехнический университет»
- •Цель работы
- •Индивидуальное задание
- •1.Теоретические сведения
- •Основные команды языка Ассемблер
- •Команды пересылки.
- •1) Пересылка данных
- •2) Пересылка адресов
- •4) Пересылка в стек и из стека
- •Арифметические операции.
- •1) Команды счёта
- •2) Арифметические операции над двоичными кодами.
- •3) Команда сравнения:
- •Команды корректировки.
- •Команды логических операций.
- •1) Поразрядные логические операции:
- •2) Команды сдвига
- •Команды передачи управления.
- •Команды организации цикла.
- •Команды вызова процедур и возврата из них.
- •Команды прерываний и возврата из них.
- •Функции ввода/вывода dos.
- •2.Расчетно-графическая часть
- •Листинг программы:
- •Библиографический список
2.Расчетно-графическая часть
Задание (Вариант 8): Напишите программу, которая пересылает информацию из области с начальным адресом LIST и конечным адресом LIST+20 в область с соответствующими адресами BLK и BLK+20.
Листинг программы:
Turbo Assembler Version 2.5 01/18/13 03:36:11 Page 1
lab33.ASM
1 0000 sts SEGMENT PARA STACK 'Stack'
2 0000 20*(????) DW 32 DUP (?)
3 0040 sts ENDS
4
5 0000 data SEGMENT
6 0000 15*(31) LIST db 21 dup ('1') ;инициализировать 21 символами единицы
7 = 0015 strlen equ $-LIST ;вичислить длину области
8 0015 16*(24) BLK db 22 dup ('$') ;зарезервировать память для строки+символ для вывода строки
9 002B data ends
10
11 0000 text SEGMENT
12 assume CS:text, DS:data, SS:sts
13 0000 main:
14 0000 B8 0000s mov ax,data
15 0003 8E D8 mov DS,AX
16 0005 8E C0 mov es,ax
17 0007 B9 0015 mov cx,strlen ;длина области
18 000A BE 0000r lea si,LIST ;из DS:SI
19 000D BF 0015r lea di,BLK ;в ES:DI
20 0010 F3> A4 rep movsb ;выполнить копирование
21 0012 B4 09 mov ah,9 ;вывод строки на экран
22 0014 BA 0015r lea dx,BLK ;адрес строки
23 0017 CD 21 int 21h
24 0019 B4 00 mov ah,0 ;ждать нажатой клавиши
25 001B CD 16 int 16h
26 001D B4 4C mov ah,4Ch ;выход из программы
27 001F CD 21 int 21h
28 0021 text ends
29 end main
Turbo Assembler Version 2.5 01/18/13 03:36:11 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "01/18/13"
??FILENAME Text "lab33 "
??TIME Text "03:36:11"
??VERSION Number 0205
@CPU Text 0101H
@CURSEG Text TEXT
@FILENAME Text LAB33
@WORDSIZE Text 2
BLK Byte DATA:0015
LIST Byte DATA:0000
MAIN Near TEXT:0000
STRLEN Number 0015
Groups & Segments Bit Size Align Combine Class
DATA 16 002B Para none
STS 16 0040 Para Stack STACK
TEXT 16 0021 Para none
Вывод
Научились анализировать ход выполнения программы на языке Ассемблера при помощи отладчика TurboDebugger.
Библиографический список
1.Программирование Ассемблер URL: http://citforum.ru/programming/asm.shtml (дата обращения 16.01.2013)
2.Программирование на языке Ассемблер URL: http://www.studfiles.ru/dir/cat32/subj1258/file11569/view110334.html (дата обращения 16.01.2013)
