🗊Презентация Основы языка Аssembler. Связь с программами на других языках

Нажмите для полного просмотра!
Основы языка Аssembler. Связь с программами на других языках, слайд №1Основы языка Аssembler. Связь с программами на других языках, слайд №2Основы языка Аssembler. Связь с программами на других языках, слайд №3Основы языка Аssembler. Связь с программами на других языках, слайд №4Основы языка Аssembler. Связь с программами на других языках, слайд №5Основы языка Аssembler. Связь с программами на других языках, слайд №6Основы языка Аssembler. Связь с программами на других языках, слайд №7Основы языка Аssembler. Связь с программами на других языках, слайд №8Основы языка Аssembler. Связь с программами на других языках, слайд №9Основы языка Аssembler. Связь с программами на других языках, слайд №10Основы языка Аssembler. Связь с программами на других языках, слайд №11Основы языка Аssembler. Связь с программами на других языках, слайд №12Основы языка Аssembler. Связь с программами на других языках, слайд №13Основы языка Аssembler. Связь с программами на других языках, слайд №14Основы языка Аssembler. Связь с программами на других языках, слайд №15Основы языка Аssembler. Связь с программами на других языках, слайд №16Основы языка Аssembler. Связь с программами на других языках, слайд №17Основы языка Аssembler. Связь с программами на других языках, слайд №18Основы языка Аssembler. Связь с программами на других языках, слайд №19

Вы можете ознакомиться и скачать презентацию на тему Основы языка Аssembler. Связь с программами на других языках. Доклад-сообщение содержит 19 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1






 
Описание слайда:
 

Слайд 2





Базовые регистры процессора
 Intel Pentium
Описание слайда:
Базовые регистры процессора Intel Pentium

Слайд 3


Основы языка Аssembler. Связь с программами на других языках, слайд №3
Описание слайда:

Слайд 4





Пример прямой адресации
Пример прямой адресации
 
     mov BP,SP       
	mov AX,4C00h 
	mov DX, offset mas  
	mass db 250 dup (‘*’) 
 
	mov DL,'!‘  
 
	mem1   DW  1D7Fh
	mov  ax,mem1
	 
	mem1   DD   EC341D7Fh   
	mov  ax, word ptr mem1     ;ax=1d7f
	mov  bx, word ptr mem+2   ;bx=ec34
>
Описание слайда:
Пример прямой адресации Пример прямой адресации   mov BP,SP mov AX,4C00h mov DX, offset mas mass db 250 dup (‘*’) mov DL,'!‘   mem1 DW 1D7Fh mov ax,mem1   mem1 DD EC341D7Fh mov ax, word ptr mem1 ;ax=1d7f mov bx, word ptr mem+2 ;bx=ec34 >

Слайд 5





Пример косвенной адресации
Пример косвенной адресации
mem1  DW  1D7Fh
lea bx,mem1
mov ax,[bx]
mov DX,[ВР] 
mov AL, [DI] 
s1   DB  “String 1”
lea EBX,s1
 mov al, byte ptr [EBX][5]  	 ;al=”g”
 
mas db 1,2,5,3,7,9,8,3,4  
mov BX,2  
mov DL,mas[BX]    ; dl=5 
Такой же результат даст такая последовательность команд: 
mov BХ,offset mas 
mov DL,2[BX] 	; mov DL, [ВХ+2]  mov DL, [ВХ]+2
Описание слайда:
Пример косвенной адресации Пример косвенной адресации mem1 DW 1D7Fh lea bx,mem1 mov ax,[bx] mov DX,[ВР] mov AL, [DI] s1 DB “String 1” lea EBX,s1 mov al, byte ptr [EBX][5] ;al=”g”   mas db 1,2,5,3,7,9,8,3,4 mov BX,2 mov DL,mas[BX] ; dl=5 Такой же результат даст такая последовательность команд: mov BХ,offset mas mov DL,2[BX] ; mov DL, [ВХ+2] mov DL, [ВХ]+2

Слайд 6





Команды передачи данных
Описание слайда:
Команды передачи данных

Слайд 7





Арифметические команды:
Описание слайда:
Арифметические команды:

Слайд 8





КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ
КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ
Безусловный переход:
Jmp adr
 …
L1: mov bx,ax
Jmp L1
 
Условные переходы:
Jx adr переход по равенству флага
JNx  adr переход по неравенству флага
 
Jz adr ;переход если флаг ZF=1 
Jс adr ;переход если флаг CF=1 
Js adr ;переход если флаг SF=1 
Jo adr ;переход если флаг OF=1
Описание слайда:
КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ Безусловный переход: Jmp adr  … L1: mov bx,ax Jmp L1   Условные переходы: Jx adr переход по равенству флага JNx adr переход по неравенству флага   Jz adr ;переход если флаг ZF=1 Jс adr ;переход если флаг CF=1 Js adr ;переход если флаг SF=1 Jo adr ;переход если флаг OF=1

Слайд 9


Основы языка Аssembler. Связь с программами на других языках, слайд №9
Описание слайда:

Слайд 10





Команды обработки стека:
Команды обработки стека:
 PUSH o1
 POP o1
 Пример:
Mov  ax,  0x1234
Mov  bx,  0x5678
Push  ax
Push  bx
…
Pop  bx
Pop  ax
Команды вызова процедуры и возврата:
CALL adr
RET
 
Команда загрузки эффективного адреса
LEA o1,[o2]
Описание слайда:
Команды обработки стека: Команды обработки стека: PUSH o1 POP o1 Пример: Mov ax, 0x1234 Mov bx, 0x5678 Push ax Push bx … Pop bx Pop ax Команды вызова процедуры и возврата: CALL adr RET   Команда загрузки эффективного адреса LEA o1,[o2]

Слайд 11





Команды сдвига:
Команды сдвига:
SHR o1 {,size}
SHL o1 {,size} логический сдвиг числа
SAR o1 {,size}
SAL o1 {,size} арифметический сдвиг числа
RCR o1 {,size}
RCL o1 {,size} циклический сдвиг через флаг переноса
ROR o1 {,size}
ROL o1 {,size} циклический сдвиг  с выносом во флаг переноса
 
ПРИМЕР: Подсчет количества двоичных единиц в числе
		Xor bx,bx
		Mov   cx,16
Repeat:
		Shr   ax,1		      
		Jnc   not_one
		Inc  bx
Not_one:    Loop Repeat
Описание слайда:
Команды сдвига: Команды сдвига: SHR o1 {,size} SHL o1 {,size} логический сдвиг числа SAR o1 {,size} SAL o1 {,size} арифметический сдвиг числа RCR o1 {,size} RCL o1 {,size} циклический сдвиг через флаг переноса ROR o1 {,size} ROL o1 {,size} циклический сдвиг с выносом во флаг переноса   ПРИМЕР: Подсчет количества двоичных единиц в числе Xor bx,bx Mov cx,16 Repeat: Shr ax,1 Jnc not_one Inc bx Not_one: Loop Repeat

Слайд 12





Команды сравнения:
Команды сравнения:
CMP o1,o2
Cmp dl,ah
Cmp ax,4
TEST о1,о2
Test ax,00000100b
Псевдокоманды  определения констант DB,DW,DD
	
	s db 0X55	
	s1 db 0x55,0x56,’a’,’hello’     ; байтовая последовательность
				
	s3 dw 0x1234			 ; 
	s4 dd 0x12345678  		 ;
 
Описание слайда:
Команды сравнения: Команды сравнения: CMP o1,o2 Cmp dl,ah Cmp ax,4 TEST о1,о2 Test ax,00000100b Псевдокоманды определения констант DB,DW,DD s db 0X55 s1 db 0x55,0x56,’a’,’hello’ ; байтовая последовательность s3 dw 0x1234 ; s4 dd 0x12345678 ;  

Слайд 13





Каркас программы
.MODEL FLAT, STDCALL
.DATA
<инициализируемые данные>
.DATA?
< неинициализиpуемые данные>
.CONST
< константы>
.CODE
<метка> proc
< код>
<метка> endp
END
Описание слайда:
Каркас программы .MODEL FLAT, STDCALL .DATA <инициализируемые данные> .DATA? < неинициализиpуемые данные> .CONST < константы> .CODE <метка> proc < код> <метка> endp END

Слайд 14


Основы языка Аssembler. Связь с программами на других языках, слайд №14
Описание слайда:

Слайд 15


Основы языка Аssembler. Связь с программами на других языках, слайд №15
Описание слайда:

Слайд 16





Стековый фрейм 
Для создания стекового фрейма программа должна выполнить перечисленные ниже действия: 
• поместить аргументы в стек; 
• вызвать процедуру командой CALL, в результате чего адрес возврата помещается в  стек; 
• в начале выполнения процедуры сохранить в стеке регистр ЕВР; 
• загрузить в регистр EBP текущий указатель стека из регистра ESP.
Описание слайда:
Стековый фрейм Для создания стекового фрейма программа должна выполнить перечисленные ниже действия: • поместить аргументы в стек; • вызвать процедуру командой CALL, в результате чего адрес возврата помещается в стек; • в начале выполнения процедуры сохранить в стеке регистр ЕВР; • загрузить в регистр EBP текущий указатель стека из регистра ESP.

Слайд 17





Пример вызова функции
Пример вызова функции
extern "C" int razn(int a, int b);
void main()
{
int a,b,c;
a=20;
b=10;
c=razn(a,b);
cout << c <<"\n";
}
Описание слайда:
Пример вызова функции Пример вызова функции extern "C" int razn(int a, int b); void main() { int a,b,c; a=20; b=10; c=razn(a,b); cout << c <<"\n"; }

Слайд 18





Пример вызова процедуры
Пример вызова процедуры
extern "C" void sum(int a, int b, int & c);
void main()
{
int a,b,c;
a=10;
b=20;
sum(a,b,c);
cout << c <<"\n";
}
Описание слайда:
Пример вызова процедуры Пример вызова процедуры extern "C" void sum(int a, int b, int & c); void main() { int a,b,c; a=10; b=20; sum(a,b,c); cout << c <<"\n"; }

Слайд 19





Вызов функции с локальными переменными
Вызов функции с локальными переменными
		С=(А+B)+(B-A)* B*A
extern "C" int calc(int a, int b);
void main()
{int a,b,c;
a=10;
b=20;
c = calc(a,b);         
cout << c <<"\n";
}
Описание слайда:
Вызов функции с локальными переменными Вызов функции с локальными переменными С=(А+B)+(B-A)* B*A extern "C" int calc(int a, int b); void main() {int a,b,c; a=10; b=20; c = calc(a,b); cout << c <<"\n"; }



Похожие презентации
Mypresentation.ru
Загрузить презентацию