Презентация на тему "Введение в программирование на языке ассемблера"

Презентация: Введение в программирование на языке ассемблера
1 из 33
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
2.0
1 оценка

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Интересует тема "Введение в программирование на языке ассемблера"? Лучшая powerpoint презентация на эту тему представлена здесь! Данная презентация состоит из 33 слайдов. Средняя оценка: 2.0 балла из 5. Также представлены другие презентации по информатике для студентов. Скачивайте бесплатно.

Содержание

  • Презентация: Введение в программирование на языке ассемблера
    Слайд 1

    Введение в программирование на языке ассемблера

  • Слайд 2

    Формат инструкции на языке ассемблера

    Директива Команда Макрокоманда Метка Операнды Комментарий

  • Слайд 3

    Директивы –команды управления работой транслятора

    Управление листингом PAGE К_стр К_симв 9

  • Слайд 4

    Три модели организации адресного пространства

  • Слайд 5

    Директива описания сегмента

    Имя SEGMENT[1] [2] [3] [4] Имя ENDS Здесь [1] - тип выравнивания[2] - тип объединения[3] -класс[4] - размер адреса (для i386 и выше) Имя – константа, содержащая номер параграфа начала сегмента

  • Слайд 6

    Тип выравнивания BYTE x 1 WORD x 2 DWORD x 4 PARA x 16 PAGE x 256 MEMPAGE x 1024 Тип объединения PRIVATE PUBLIC (MEMORY) COMMON STACK AT**** Размер адреса USE16 USE32 Класс ‘имя_класса’ данные команды ****0 ****0 ****0 ****i cs: **** ip:0000 cs: **** ip:000i

  • Слайд 7

    Обозначения

    SR – сегментный регистр r8, r16, r32 – регистр общего назначения m8, m16,m32 – адрес области памяти i8,i16,i32 – непосредственное значение (константа)

  • Слайд 8

    Директива указания содержимого сегментных регистров

    ASSUME SR:имя [,sr:имя]… Имя – имя сегмента или NOTHING Директива «Конец модуля» END [точка входа в программу]

  • Слайд 9

    Директива описания процедуры

    Имя PROC [FAR] Тело_процедуры Имя ENDP Far – для входа в процедуру используется полный адрес (адресная пара CS:IP) Иначе – только смещение (IP)

  • Слайд 10

    Директивы описания данных

  • Слайд 11

    Пример

    Data segment A db ? B db ‘abcd’,4 dup(‘*’) C dw -1,0,1 D dw C E dd D F db 0fh,15,17q,1111b G dd -1.5 H dq ‘hgfedcba’ Data ends ;”abcd****” ;Offset C ;Seg D:Offset D ;4 dup(15) ;”abcdefgh”

  • Слайд 12

    Инструкция MOV

  • Слайд 13

    N.B.

    Mov ax,0ffh 0 0 f f ax: Mov m16,ax f f 0 0 k k+1 k+2 ah al

  • Слайд 14

    Инструкция генерации программного прерывания int

    Вызов функции BIOS Int 10h Номер функции задается в регистре ah 02h – установить курсорdh – строка, dl – колонка 03h – получить позициюкурсора на bh страницеdh – строка, dl - колонка Вызов функции DOS Int 21h 01h – ввод символа в al 02h – вывод символа из dl 09h – вывод строки, до ‘$’адрес в dx 4ch – завершение програм-мы с кодом ошибки al

  • Слайд 15

    Пример

    title Первый файл subttl Основная программа и сегмент данных Stkseg segment stack db 256 dup(?) Stkseg ends Dtseg segment public x db "abcdef" Dtseg ends

  • Слайд 16

    Cdseg segment assume cs:cdseg,ds:dtseg,ss:stkseg,es:nothing main proc farmov ax,dtseg ; инициализация сегментногоmov ds,ax ; регистра данных mov ah,9 ; функция DOS вывод строкиmov dx,offset x ; адрес строкиint 21hmov ah,2 ; функция DOS вывод символаmov dl,2ah ; код символа *int 21hmov ah,4ch ; функция завершения задачиmov al,0 ; код ошибкиint 21h main endp Cdseg ends endmain

  • Слайд 17

    title Второй файл subttl Еще один сегмент данных Dtseg segmentbytepublic y db '$' Dtseg ends end Результат: abcdef*

  • Слайд 18

    title Второй файл subttl Еще один сегмент данных Dtseg segmentpublic y db '$' Dtseg ends end Результат: abcdef *

  • Слайд 19

    Turbo Assembler Version 4.1 22/02/04 14:26:27 Page 1 tst.asm Первый файл Основная программа и сегмент данных 1 0000 stkseg segment stack 2 0000 0100*(??) db 256 dup(?) 3 0100 stkseg ends 4 5 0000 dtseg segment public 6 0000 61 62 63 64 65 66 x db "abcdef" 7 0006 dtseg ends 8 9 0000 cdseg segment 10 assume cs:cdseg,ds:dtseg,ss:stkseg,es:nothing 11 0000 main proc far 12 0000 B8 0000s mov ax,dtseg 13 0003 8E D8 mov ds,ax 14 15 0005 B4 09 mov ah,9 16 0007 BA 0000r mov dx,offset x 17 000A CD 21 int 21h 18 000C B4 02 mov ah,2 19 000E B2 2A mov dl,2ah 20 0010 CD 21 int 21h 21 22 0012 B4 4C mov ah,4ch 23 0014 B0 00 mov al,0 ; код ошибки 24 0016 CD 21 int 21h 25 0018 main endp 26 0018 cdseg ends 27 28 end main

  • Слайд 20

    Turbo Assembler Version 4.1 22/02/04 14:26:27 Page 2 Symbol Table Первый файл Symbol Name Type Value ??DATE Text "22/02/04" ??FILENAME Text "tst " ??TIME Text "14:26:27" ??VERSION Number 040A @CPU Text 0101H @CURSEG Text CDSEG @FILENAME Text TST @WORDSIZE Text 2 MAIN Far CDSEG:0000 X Byte DTSEG:0000 Groups & Segments Bit Size Align Combine Class CDSEG 16 0018 Para none DTSEG 16 0006 Para Public STKSEG 16 0100 Para Stack

  • Слайд 21

    Turbo Assembler Version 4.1 22/02/04 14:26:27 Page 1 tst1.asm Второй файл Еще один сегмент данных 1 0000 dtseg segment byte public 2 0000 24 y db '$' 3 0001 dtseg ends 4 5 end Turbo Assembler Version 4.1 22/02/04 14:26:27 Page 2 Symbol Table Второй файл Symbol Name Type Value ??DATE Text "22/02/04" ??FILENAME Text "tst1 " ??TIME Text "14:26:27" ??VERSION Number 040A @CPU Text 0101H @CURSEG Text DTSEG @FILENAME Text TST1 @WORDSIZE Text 2 Y Byte DTSEG:0000 Groups & Segments Bit Size Align Combine Class DTSEG 16 0001 Byte Public

  • Слайд 22

    Распределение памяти (.mem)

    Start Stop LengthName Class 00000H 000FFH 00100H STKSEG 00100H 00106H 00007H DTSEG 00110H 00127H 00018H CDSEG Program entry point at 0011:0000

  • Слайд 23

    Использование оператора mov

    #include int mema; void main() {_asm mov mema,5; /*то же, что и mema=5; */cout

  • Слайд 24

    Использование стека

    Используется для: Хранения адреса возврата из вызванной программы Передачи параметров между программами Временного хранения данных Единица данных – слово Регистры, связанные со стеком: ss, sp, bp … k k+2 k+4 k+6 k+n-4 k+n-2 k+n SS[k] SP[n] PUSH 1PUSH 2POP bxPOP axNOP

  • Слайд 25

    Используется для: Хранения адреса возврата из вызванной программы Передачи параметров между программами Временного хранения данных Единица данных – слово Регистры, связанные со стеком: ss, sp, bp … k k+2 k+4 k+6 k+n-4 k+n-2 k+n 1 SS[k] SP[n-2] PUSH 1PUSH 2POP bxPOP axNOP

  • Слайд 26

    Используется для: Хранения адреса возврата из вызванной программы Передачи параметров между программами Временного хранения данных Единица данных – слово Регистры, связанные со стеком: ss, sp, bp … k k+2 k+4 k+6 k+n-4 k+n-2 k+n 2 1 SS[k] SP[n-4] PUSH 1PUSH 2POP bxPOP axNOP

  • Слайд 27

    Используется для: Хранения адреса возврата из вызванной программы Передачи параметров между программами Временного хранения данных Единица данных – слово Регистры, связанные со стеком: ss, sp, bp … k k+2 k+4 k+6 k+n-4 k+n-2 k+n 1 SS[k] SP[n-2] PUSH 1PUSH 2POP bx ; =2POP axNOP

  • Слайд 28

    Используется для: Хранения адреса возврата из вызванной программы Передачи параметров между программами Временного хранения данных Единица данных – слово Регистры, связанные со стеком: ss, sp, bp … k k+2 k+4 k+6 k+n-4 k+n-2 k+n SS[k] SP[n] PUSH 1PUSH 2POP bx ; =2POP ax ; =1NOP

  • Слайд 29

    Команды работы со стеком

    SS[k] SP[n] PUSHA

  • Слайд 30

    di si bp sp bx dx cx ax SS[k] SP[n-16] PUSHAPOPA

  • Слайд 31

    SS[k] SP[n] PUSHAPOPAPUSHF

  • Слайд 32

    Flags SS[k] SP[n-2] PUSHAPOPAPUSHFPOPF

  • Слайд 33

    SS[k] SP[n] PUSHAPOPAPUSHFPOPFPUSHADPOPAD

Посмотреть все слайды

Сообщить об ошибке