Pc assembler
Download
1 / 18

PC Assembler - PowerPoint PPT Presentation


  • 76 Views
  • Uploaded on

PC Assembler. Ing. E.E. Mak MSc. Cluster1. Introduction Microprocessors Numbers, Binary, Hexadecimal, ASCII Adding and subtracting Instructions and Flags Deeds Z80 simulator. Computer Lay-out. MEM data+instructions. I/O. External. CPU. Model CPU. PC. R1. R2. M A R. A. B. IR.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' PC Assembler' - joelle-nixon


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Pc assembler

PC Assembler

Ing. E.E. Mak MSc


Cluster1
Cluster1

  • Introduction

  • Microprocessors

  • Numbers, Binary, Hexadecimal, ASCII

  • Adding and subtracting

  • Instructions and Flags

  • Deeds Z80 simulator


Computer lay out
Computer Lay-out

MEM

data+instructions

I/O

External

CPU


Model cpu
Model CPU

PC

R1

R2

M A R

A

B

IR

ALU

M D R

DECODER

SR

C

ICU

TIMER

CLOCK


Z80 processor register layout

Main registers.

Alternative registers.

Accumulator Registers

Interupt register

Alternative Registers

Memory Refresh

Adress Registers

Z80 Processor Register Layout

I

A’

A

F

F’

R

W

Z

W’

Z’

B

C

B’

C’

D

E

D’

E’

Flags 8 bit

H

L

H’

L’

S

Sign

Z

Zero

I

X

-

-

H

Half-Carry

I

Y

-

-

S

P

P/V

Parity/overfl.

P

C

N

Negate

C

Carry


Negative numbers
Negative Numbers

Using the 8-th bit as a SIGN bit

53 =

0

0

1

1

0

1

0

1

-53 =

1

0

1

1

0

1

0

1

Inverting the bits

53 =

0

0

1

1

0

1

0

1

-53 =

1

1

0

0

1

0

1

0


Two s complement
Two’s Complement

13

0

0

0

0

1

1

0

1

inv

1

1

1

1

0

0

1

0

1

+1

Two’s Complement

1

1

1

1

0

0

1

0


Packed decimals
Packed Decimals

binary

0

0

1

1

0

1

0

1

53 =

Binary packed decimal

0

0

1

1

0

1

0

1

5

35 =

3


Addition
Addition

1

0

1

0

0

0

0

1

0

1

0

0

0

1

0

1

+

1

1

1

0

0

1

1

0


Subtraction
Subtraction

1

1

1

0

0

1

1

0

0

1

0

0

0

1

0

1

-

1

0

1

0

0

0

0

1


Flags
Flags

  • Carry

  • Overflow

  • Zero

  • Negative

  • ..

  • ...


Generic instructions
Generic Instructions

  • Input/output data

  • Load a value(register) into a register

  • Arithmetic

  • jumping / subroutine

  • control

  • Bitwise operators : Boolean, Register shifts

  • interrupt handling

  • stacking


Example programs
Example programs

LD A,86d

ADD A,57d

LD A,86d

ADC A,57d


Example programs2
Example programs2

Adding 57 to HL:

LD A,L

ADD A,57d

LD L,A

LD A,H

ADC A,0

LD H,A


Assignments
Assignments

1. Write a program to store 100 into DE and 385 into BC

ADD thereafter DE and BC into HL

2. Investigate substraction using negative numbers for

all number-configurations demonstrated in previous

sheets

3. Investigate how to multiply using binary numbers

4. Investigate using shift operators could facilitate

the multiplication process.

5. What are floating point decimals ,

how are they implemented?


Links
links

  • Simple reference list Z80 opcodes:

    • http://www.ticalc.org/pub/text/z80/z80.txt

  • Lots of information about the Z80

    • http://www.z80.info/

  • full reference list op-codes Z80:

    • http://www.ticalc.org/pub/text/z80/z80_reference.txt

  • Crash-course Z80 assembly-programming

    • http://www.ticalc.org/pub/text/z80/z80asmg.zip


Binary packed
Binary Packed

0E

0

0

0

0

1

1

1

0

1A

0

0

0

1

1

0

1

0

+

28

0

0

1

0

1

0

0

0

The use of half bytes let us express two adjacent hexadecimal numbers. As a consequence, we may use this two-digit hexadecimal byte presentation to perform calculations as well, whereas the carry-mechanism while adding work accordingly

In hexadecimal coding, each digit of one halfbyte represents a hexadecimal number


Binary packed decimal
Binary Packed Decimal

07

0

0

0

0

0

1

1

1

17

0

0

0

1

0

1

1

1

+

24

0

0

1

0

0

1

0

0

The use of half bytes for numbers 0..9 only, forces while adding special corrections to facilitate adding of these decimal numbers.

(What would the result have been without this corrections?)

Could you develop an algorithm to make this corrections?


ad