Search Header Logo
Assembly

Assembly

Assessment

Presentation

Computers

10th Grade

Hard

Created by

Emanuela Giaconi

Used 4+ times

FREE Resource

33 Slides • 36 Questions

1

Assembly

By Emanuela Giaconi

2

Assembly e Assembler

  • assembly: linguaggio di programmazione molto simile al linguaggio macchina

  • assembler: programma "assemblatore" che converte il linguaggio assembly in linguaggio macchina.

  • le istruzioni del linguaggio assembly corrispondono alle istruzioni che il processore può eseguire: stringhe di bits (1 o 2 ma anche 4 bytes) che nel linguaggio assembly assumono nomi comprensibili agli umani.

Assembly

3

Assembly

uso di parole chiave:

  • MOV per assegnare valori ai registri,

  • ADD per sommare i contenuti dei registri o aree di memoria,

  • SUB per sottrarre,

  • ...

Assembly

media

4

Assembler e Linker

la traduzione da assembly a codice macchina prevede due passaggi:

  • ASSEMBLER: traduzione che non richiede nessuna intelligenza (ad ogni istruzione assembly corrisponde un'istruzione macchina espressa in bit)

  • ​LINKER: collegamento di moduli e librerie di cui si compone il programma e distribuzione del codice oggetto nello spazio di indirizzi di memoria centrale assegnato al programma

Assembly

media

5

Open Ended

Indicare i tipi di architetture che conosci in base al numero di operandi che una macchina può elaborare in un'unica istruzione

6

Istruzione assembly

Istruzione assembly:

  • label: assegna un nome simbolico all'indirizzo di memoria in cui si trova l'istruzione

  • opcpde: codice operativo mnemonico che specifica l'operazione

  • operandi separati da una virgola (da uno a tre): dati su cui operare​

Assembly

media

7

Istruzioni Assembly

  • tutte le istruzioni hanno un corrispondente opcode (Operation Code) che rappresenta l'istruzione stessa in formato esadecimale o binario.

  • istruzione che somma 32 al registro EAX

Assembly

media

8

Istruzioni Assembly

  • faremo riferimento al set di istruzioni (ISA Instruction Set Architecture) realizzato per i processori Intel 8086 (comaptibili con i processori della famiglia Intel x86) con un'architettura a 16 bit, e con istruzioni a due operandi

Assembly

media

9

Registri dei processori Intel 8086

5 tipi di registri per un totale di 14 registri tutti a 16 bit

  • FR: registro del flag

  • AX, BX, CX e DX​: registri di lavoro

  • DI e SI: registri indice

  • DS, ES, CS, SS: registri segmento

  • IP, BP e SP: registri puntatore

Assembly

10

Multiple Choice

Da cosa deriva il nome 8086?

1

Dai bit

2

Dagli anni di progettazione

3

Dal nome dell'inventore

11

Multiple Choice

Da che azienda è stato creato il primo processore 8086?

1

Apple

2

Intel

3

MSI

4

AMD

12

Multiple Choice

Il processore 8086 da quanti bit è costituito?

1

8 bit

2

20 bit

3

4 bit

4

16 bit

13

Multiple Choice

Question image

Che linguaggio utilizza?

1

C++

2

Java

3

Linguaggio Assembly

4

C

14

Registro dei flag

  • Tutte le istruzioni modificano il registro di stato

  • alcune istruzioni richiedono che prima venga letto il registro di stato (esecuzione dipende dal contenuto del registro di stato)

Assembly

media

15

Registro dei flag

6 flag di stato e 3 di controllo:

  • CF (Carry Flag):​ 1 in presenza di riporto in seguito a operazioni sulla ALU

  • PF (Parity Flag): bit di parità, settato a 1 per avere un numero pari di bit a 1 nel dato. Rilevazione degli errori in trasmissione

  • AF (Auxiliary Flag)​: prestito per operazioni sui nibble (4 bit)

Assembly

media

16

Registro dei flag

  • ZF (Zero Flag):​ 1 quando il risultato di un'operazione aritmetica è 0, altrimenti è resettato a 0

  • SF (Sign Flag): 1 quando il risultato di un'operazione aritmetica è negativo, altrimenti è resettato a 0

Assembly

media

17

Registro dei flag

  • OF (Overflow Flag):​ 1 segnala un "traboccamento", risultato di un'operazione aritmetica che occupa il bit dedicato al segno, risultato dimensioni superiori a quelle predisposte

  • TF (Trap Flag): 1 quando si esegue un programma in debug

  • ​IF (Interrupt Flag): 1 quando si abilitano gli interrupt

  • ​DF (Direction Flag): 1 per indirizzi di memoria decrescenti

Assembly

media

18

Multiple Choice

In che consiste il registro flag?

1

Immagazzina i dati

2

Consiste in un gruppo di bit che consentono di ottenere delle informazioni sui risultati dell'ultima operazione aritmetico-logica eseguita

3

Svolge calcoli matematici

Show answersPreviousNext

19

Registri di lavoro

  • AX, BX, CX, DX a 16 bit

  • usati anche a 8 bit per volta indicando la parte alta (AH, BH, CH, DH) per gli 8 bit più significativi, o la parte bassa (AL, BL, CL, DL)​

Assembly

media

20

Registri segmento

A ogni programma in esecuzione vengono assegnati 4 segmenti (aree di memoria della memoria centrale da 64kB nell'Intel 8086) per contenere dati, istruzioni e indirizzi

  • ​segmento dati: contiene i dati necessari al programma

  • segmento extra: contiene in generale dati che necessitano più byte (ad es floating point)

  • segmento codice: contiene le istruzioni macchina del programma

  • segmento stack: contiene indirizzi di ritorno delle subroutine​

Assembly

21

Registri segmento

I registri segmento DS (Data Segment), ES (Extra Segment), CS (Code Segment) e SS (Stack Segment) contengono gli indirizzi iniziali delle rispettive aree

Assembly

media

22

Registri indice

​I registri indice vengono usati per operare su strutture dati array o string

  • SI (Source Index): contiene l'indice della stringa o array che si sta leggendo​

  • ​DI (Destination Index): contiene l'indice della stringa o array in cui si sta scrivendo

  • i dati si trovano nel segmento dati, DI e SI lavorano in copia con DS. DS indica l'indirizzo iniziale del segmento dati, mentre in SI e DI ci sarà il numero di byte in cui bisogno spostarsi all'interno del segmento per ottenere il dato da elaborare

Assembly

23

Registri puntatori

  • IP (Instruction Pointer): contiene offset che a partire dall'inizio del segmento codice permette di indirizzare l'istruzione macchina in esecuzione

  • IP lavora in coppia con CS

  • Subroutine: raggruppamenti di istruzioni che possono essere richiamate quando occorre tramite un nome simbolico. L'indirizzo di ritorno della subroutine viene salvato nello stack​

Assembly

media

24

Registri puntatori - Subroutine

Assembly

  • BP (Base Pointer): punta all'inizio dell'area di memoria riservata alla subroutine all'interno dello stack

  • SP (Stack Pointer): punta alla cima dell'area di memoria riservata alla subroutine all'interno dello stack

25

Registri - Coppie celebri

media

​CS: Code Segment

IP: Instruction Pointer

DS: Data Segment

DI: Destination Index

SI: Source Index

SS: Stack Segment

BP: Base Pointer

SP: Stack Pointer​

26

Set di istruzioni - Uso generale

Assembly

media
media
media

27

Set di istruzioni - I/O

Assembly

media
media
media

28

Set di istruzioni - Op Aritmetiche

Assembly

media
media
media
media
media

29

Set di istruzioni - Op Aritmetiche

Assembly

media
media
media
media
media
media

30

Set di istruzioni - Op logiche

Assembly

media
media
media
media
media
media
media
media
media
media
media
media

31

Set di istruzioni - Op subroutine

media
media
media
media
media
media
media
media
media
media
media

32

Set di istruzioni - Salto condizionato

media
media
media
media
media
media
media
media
media
media
media

33

Set di istruzioni - Salto condizionato

media
media
media
media
media
media
media
media
media
media
media
media
media
media

34

Set di istruzioni - Loop

media
media
media
media
media
media
media
media
media
media
media
media
media
media

35

Set di istruzioni - Loop

media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media

36

Interrupt

media
media
media
media
media
media
media
media
media
media
media
media
media
media
media

Le istruzioni di I/O coinvolgono le periferiche che comunicano con la CPU (chiedono la sua attenzione) tramite interrupt

media
media

37

Interrupt

media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media

38

Interrupt

media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media

39

Interrupt

media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media
media

40

Multiple Select

What kind of code does an assembler take as input?

1

object code

2

bytecode

3

high level program code

4

assembly language code

5

machine code

41

Multiple Select

What kinds of code might an assembler output?

1

object code

2

bytecode

3

high level program code

4

assembly language code

5

machine code

42

Multiple Choice

Where is object code stored?

1

main memory

2

secondary storage

3

in the programmer's mind

4

on paper

43

Multiple Choice

Define instruction set

1

The complete collection of instruction that are understood by CPU

2

The complete collection of instruction that are understood by human

3

The complete collection of instruction that are understood by student

4

The complete collection of instruction that are understood by binary

44

Multiple Select

Allister just learned about language in subject Computer System Architecture. SELECT level of language that friendly to human also understand by computer system.

1

Low Level - machine language

2

Middle Level - assembly language

3

High Level - high level language

4

Intermediate Level - middle language

45

Fill in the Blanks

Type answer...

46

Multiple Choice

Define Machine Language

1

A sequence of instruction and operand in binary that list the exact representation instruction as they appear in computer memory

2

A sequence of instruction and operand in hexadecimal that list the exact representation instruction as they appear in computer memory

3

A sequence of instruction and operand in binary that list the exact representation instruction as they appear in cache memory

4

A sequence of instruction and operand in hexadecimal that list the exact representation instruction as they appear in register memory

47

Multiple Select

CHOOSE the best to represent Machine Language

1

Programmers need to know specifically the architecture of CPU

2

Middle Level Language

3

Program written in any other language must be translated to binary representation of instruction before they can be executed by computer.

4

Strings of numbers or binary codes (0 or 1)

48

Multiple Select

SELECT the best to represent Instruction set

1

The complete collection of instructions that are understood by a CPU

2

Instruction set usually represented by assembly code

3

known as Machine Instruction or Machine Code

4

a low level programming language used to directly control a computer's central processing unit (CPU)

49

Multiple Choice

Define mnemonic

1

Immediate remembered code

2

Low remembered code

3

Easily remembered code

4

Harder remembered code

50

Multiple Choice

Krishna use english-like abbreviations (MUL), (ADD), (SUB).


Pick Language Krishna used.

1

Computer Language

2

High Level Language

3

Assembly Language

4

Low Level Language

51

Multiple Choice

Define Assembly Language

1

Middle Level Language

2

Symbolic representation of a machine language of specific processor

3

Message sent by programmers (program instructions) understood by the computer and vice versa.

4

Natural language of a particular computer system.

52

Multiple Choice

Question image

What is the correct arrangement of programming languages in the order of understandability by humans?

1

4, 3, 2, 1

2

1, 2, 3, 4

3

1, 3, 2, 4

4

1, 3, 4, 2

53

Multiple Choice

Machine codes are written in what form?​

1

Binary or hexadecimal

2

Opcodes such as ADD, MOV, SUB, etc.

3

Mnemonics

4

Binary only

54

Multiple Choice

Which type of programming language uses codes such as ADD, MOV and DEL?

1

High-level programming language

2

Assembly language

3

Machine code​

4

Human language

55

Multiple Choice

Consider the instruction: ADD AX, 08h. What represents the opcode?

1

ADD

2

AX, 08h

3

08h

4

AX

56

Multiple Choice

Which of the following is NOT a register?

1

Accumulator

2

Program counter

3

MAR

4

Mnemonic

57

Multiple Choice

Which of the following register performs the calculations and stores the result?

1

Accumulator

2

Program counter

3

MAR

4

Mnemonic

58

Multiple Choice

In which of the following instruction operands are not specified?

1

DAT

2

STA

3

INP

4

ADD

59

Multiple Choice

Question image

What value is present in ACC if LDA direct 6 instruction is executed?

1

6

2

4

3

16

4

14

60

Multiple Choice

Every computer processor has the same instruction set

1

True

2

False

61

Multiple Choice

What are the 2 parts of the instruction?

1

Opinstruction and Opmemory

2

Opcommand and Opstate

3

Opcode and Operand

4

Opcommand and Opmemory

62

Multiple Choice

What is Assembly code?
1
Another name for Pseudocode
2
A programming language that uses mnemonic codes
3
A program that joins pieces of code together
4
Another name for machine code

63

Multiple Choice

What translates assembly code into machine code?

1

compiler

2

assembler

3

linker

4

loader

5

interpreter

64

Multiple Choice

Different CPUs require different assemblers.
1
True
2
False

65

Multiple Choice

Each assembly instruction usually has an address or data called an

1

opcode

2

operand

3

mnemonic

4

instruction set

66

Multiple Choice

What does the store instruction need to go with it
1
The data to be stored
2
Nothing
3
A second istruction
4
The memory location to store the data in the accumulator

67

Multiple Choice

What Mnemonic is used for Addition in Assembly

1

ADD

2

ADS

3

ODD

4

IDD

68

Multiple Choice

What Mnemonic is used in Assembly to stop the program

1

HLT

2

STO

3

STP

4

STA

69

Multiple Choice

What Mnemonic is used to Subtract in Assembly

1

SUB

2

SBU

3

SBB

4

SUU

Assembly

By Emanuela Giaconi

Show answer

Auto Play

Slide 1 / 69

SLIDE