Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Язык ASSEMBLER. Команды пересылки данных

Содержание

Команды пересылки данных общего назначения mov , xchg ,
Язык ASSEMBLERКоманды пересылки данныхЛекция доцента кафедры ИВТ ГрГУкандидата технических наукЛивак Е.Н. Команды пересылки данных  общего назначения mov , xchg , mov –  основная команда пересылки данныхСхема команды: mov приемник, источник Назначение: 	пересылка данных ПРИМЕРЫPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 – адрес ПРИМЕРЫPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 – адрес ПРИМЕРЫPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 – адрес ПРИМЕРЫ ОШИБОКPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 – Особенности применения команды mov нельзя осуществить пересылку из одной области памяти в Фрагмент программыmasmmodel   small.datax     db      5y     db      ?.codestart:...        mov     al,x        mov     y,al        ...end     start Особенности применения команды mov 2. нельзя загрузить в сегментный регистр значение непосредственно Стандартное начало программыmasmModel small.stack	100h.data  .codestart:	mov	ax,@data		;@data - переменная	mov	ds,ax			mov	ax,4c00h  		; стандартный выход - ah=00h	int	21hend	start Особенности применения команды mov 3. нельзя переслать содержимое одного сегментного регистра в Особенности применения команды mov 4. нельзя использовать сегментный регистр cs в качестве Особенности применения команды mov Совет желательно использовать в качестве одного из операндов Команда XCHG (eXCHanGe)для двунаправленной пересылки данных xchg    ax, bx  Команда XCHG!! Операнды должны иметь один типxchg    ax, bl  !! Не допускается (как Пример;поменять порядок следования байт в словеch1     label   byte        dw      0f85ch		[ch1]=5c, [chl+1]=f8...						        mov    
Слайды презентации

Слайд 2 Команды пересылки данных общего назначения


mov ,

Команды пересылки данных общего назначения mov , xchg ,



xchg ,


Слайд 3 mov – основная команда пересылки данных
Схема команды: 
mov приемник,

mov – основная команда пересылки данныхСхема команды: mov приемник, источник Назначение: 	пересылка данных

источник 

Назначение:
пересылка данных между регистрами или регистрами и памятью.


Алгоритм работы:
копирование второго операнда в первый операнд.


Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги


Слайд 4 ПРИМЕРЫ
Per1 dw 100 ; 0000 – адрес Per1
Per2 dw

ПРИМЕРЫPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 –

200 ; 0002 – адрес Per2
Per3 dd 10257h ; 0004 –

адрес Per3

mov cx, Per1 cx 10010=6416

mov bx, offset Per1 bx

mov bx, offset Per2 bx

mov ax, bx ax bx

00 64

00 00

00 02

00 02

00 02


Слайд 5 ПРИМЕРЫ
Per1 dw 100 ; 0000 – адрес Per1
Per2 dw

ПРИМЕРЫPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 –

200 ; 0002 – адрес Per2
Per3 dd 10257h ; 0004 –

адрес Per3

mov cx, Per2 cx 20010=c816

mov ch, 20h cx
ch cl

00 c8

20 c8


Слайд 6 ПРИМЕРЫ
Per1 dw 100 ; 0000 – адрес Per1
Per2 dw

ПРИМЕРЫPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002 –

200 ; 0002 – адрес Per2
Per3 dd 10257h ; 0004 –

адрес Per3

mov ax, offset Per2 ax

mov al,5 ax
ah al

mov ah,10+15 ax 2510=1916


mov ax, -1 ax -1 = FFFF

00 02

19 05

00 05

FF FF


Слайд 7 ПРИМЕРЫ ОШИБОК
Per1 dw 100 ; 0000 – адрес Per1
Per2

ПРИМЕРЫ ОШИБОКPer1 dw 100		; 0000 – адрес Per1Per2 dw 200		; 0002

dw 200 ; 0002 – адрес Per2
Per3 dd 10257h ; 0004

– адрес Per3

mov dh, Per1 - constant too large
⇒ mov dx, Per1

mov dh, 1254h - constant too large
⇒ mov dx, 1254h

mov ah, Fh - Undefined symbol
Fh - идентификатор с точки зрения транслятора
⇒ mov ah, OFh




Слайд 8 Особенности применения команды mov
нельзя осуществить пересылку из

Особенности применения команды mov нельзя осуществить пересылку из одной области памяти

одной области памяти в другую
mov Per1, Per2
illegal memory

reference
need register in expression

⇒ нужно использовать в качестве промежуточного буфера любой доступный в данный момент регистр общего назначения

mov ax, Per2
mov Per1, ax

Слайд 9 Фрагмент программы
masm
model   small
.data
x     db      5
y     db      ?
.code
start:
...
        mov    

Фрагмент программыmasmmodel   small.datax     db      5y     db      ?.codestart:...        mov     al,x        mov     y,al        ...end     start

al,x
        mov     y,al
        ...
end     start


Слайд 10 Особенности применения команды mov
2. нельзя загрузить в

Особенности применения команды mov 2. нельзя загрузить в сегментный регистр значение

сегментный регистр значение непосредственно из памяти
mov ds, Perem

для выполнения такой загрузки нужно использовать промежуточный объект.
Это может быть регистр общего назначения или стек
mov ax, Perem
mov ds, ax

Слайд 11 Стандартное начало программы
masm
Model small
.stack 100h
.data

.code
start:
mov ax,@data ;@data -

Стандартное начало программыmasmModel small.stack	100h.data .codestart:	mov	ax,@data		;@data - переменная	mov	ds,ax			mov	ax,4c00h 		; стандартный выход - ah=00h	int	21hend	start

переменная
mov ds,ax

mov ax,4c00h ; стандартный выход - ah=00h
int 21h
end start


Слайд 12 Особенности применения команды mov
3. нельзя переслать содержимое

Особенности применения команды mov 3. нельзя переслать содержимое одного сегментного регистра

одного сегментного регистра в другой сегментный регистр.
(в системе

команд нет соответствующей операции)
mov es, ds

⇒ использовать в качестве промежуточных все те же регистры общего назначения
mov     ax, ds
     mov     es, ax


Слайд 13 Особенности применения команды mov
4. нельзя использовать сегментный

Особенности применения команды mov 4. нельзя использовать сегментный регистр cs в

регистр cs в качестве операнда назначения.
mov сs,

ax
mov cs, 100

Пара cs:ip всегда содержит адрес команды, которая должна выполняться следующей.
⇒ изменение командой mov содержимого регистра cs фактически означало бы операцию перехода, а не пересылки, что недопустимо.




Слайд 14 Особенности применения команды mov
Совет
желательно использовать в

Особенности применения команды mov Совет желательно использовать в качестве одного из

качестве одного из операндов регистр al/ax/eax
в этом случае TASM

генерирует более быструю форму команды mov

        mov     al,5
        mov     bl,al




Слайд 15 Команда XCHG (eXCHanGe)
для двунаправленной пересылки данных

xchg    ax,

Команда XCHG (eXCHanGe)для двунаправленной пересылки данных xchg    ax, bx 

bx 
обменять содержимое регистров

ax и bx

можно, конечно,
mov dx, ax
mov ax, bx
mov bx, dx
но операция обмена используется довольно часто, разработчики системы команд микропроцессора посчитали нужным ввести отдельную команду обмена xchg


Слайд 16 Команда XCHG
!! Операнды должны иметь один тип
xchg    ax,

Команда XCHG!! Операнды должны иметь один типxchg    ax, bl  !! Не допускается

bl  

!! Не допускается (как и для всех команд ассемблера)

обменивать между собой содержимое двух ячеек памяти
 xchg    Per1, Per2  


  • Имя файла: yazyk-assembler-komandy-peresylki-dannyh.pptx
  • Количество просмотров: 147
  • Количество скачиваний: 0