Download presentation

Presentation is loading. Please wait.

Published byBaldwin Quinn Modified over 3 years ago

1
HCS12 Arithmetic Lecture 3.3

2
68HC12 Arithmetic Addition and Subtraction Shift and Rotate Instructions Multiplication Division

3
Addition and Subtraction

5
HCS12 code for 1+, 2+ ;1+ ( n -- n+1 ) ONEP LDD0,X ADDD#1 STD0,X RTS ;2+ ( n -- n+2 ) TWOP LDD0,X ADDD#2 STD0,X RTS

6
HCS12 code for 1-, 2- ;1- ( n -- n-1 ) ONEP LDD0,X SUBD#1 STD0,X RTS ;2- ( n -- n-2 ) TWOP LDD0,X SUBD#2 STD0,X RTS

7
Double Numbers

8
Adding Double Numbers

9
Subtracting Double Numbers

10
68HC12 Arithmetic Addition and Subtraction Shift and Rotate Instructions Multiplication Division

12
Logic Shift Left LSL, LSLA, LSLB 0 1 0 1 0 0 1 0 1 1 C 76543210Bit 1 0 1 0 0 1 0 1 10 C 76543210Bit 1 0 1 0 0 1 0 1 76543210 AB LSLD

13
Logic Shift Right LSR, LSRA, LSRB 1 0 1 0 0 1 0 1 10 C 76543210Bit 1 0 1 0 0 1 0 1 10 C 76543210Bit 1 0 1 0 0 1 0 1 76543210 AB LSRD

14
Arithmetic Shift Right ASR, ASRA, ASRB 1 0 1 0 0 1 0 1 1 C

15
Rotate Left ROL, ROLA, ROLB 1 0 1 0 0 1 0 1 1 C 76543210Bit

16
Rotate Right ROR, RORA, RORB 1 0 1 0 0 1 0 11 C 76543210Bit

17
2*, 2/, and U2/

18
68HC12 Arithmetic Addition and Subtraction Shift and Rotate Instructions Multiplication Division

19
Binary Multiplication

20
13 x 12 26 13 156 1101 1100 0000 1101 10011100 9 C = 156

21
Hex Multiplication

22
61 x 90 5490 3D x 5A 262 A x D = 82, A x 3 = 1E + 8 = 26 131 5 x D = 41, 5 x 3 = F + 4 = 13 1572 16 = 5490 10 Dec Hex

23
Hex Multiplication product = $1572 is in D = A:B ; multiply 8 x 8 = 16 =00004000 ORG $4000 4000 86 3D LDAA #$3D 4002 C6 5A LDAB #$5A 4004 12 MUL

24
product = $1572 is in D = A:B

25
Multiplication

26
16-Bit Hex Multiplication 31A4 x1B2C 253B0 4 x C = 30 A x C = 78 + 3 = 7B 1 x C = C + 7 = 13 3 x C = 24 + 1 = 25

27
16-Bit Hex Multiplication 31A4 x1B2C 253B0 6348 2 x 4 = 8 2 x A = 14 1 x 2 = 2 + 1 = 3 2 x 3 = 6

28
16-Bit Hex Multiplication 31A4 x1B2C 253B0 6348 2220C 4 x B = 2C A x B = 6E + 2 = 70 1 x B = B + 7 = 12 3 x B = 21 + 1 = 22

29
16-Bit Hex Multiplication 31A4 x1B2C 253B0 6348 2220C 31A4 0544D430 ORG $4000 4000 CC 31A4 LDD #$31A4 ;D = $31A4 4003 CD 1B2C LDY #$1B2C ;Y = $1B2C 4006 13 EMUL ;Y:D = D x Y

30
Y:D = 0544D430

31
Multiply Instructions Note that EMUL and MUL are unsigned multiplies EMULS is used to multiply signed numbers

32
Unsigned Multiplication Dec Hex 65528 x 8 524224 FFF8 x 0008 7FFC0 524224 10 = 7FFC0 16

33
FFF8 x 0008 7FFC0

34
Unsigned Multiplication Dec Hex 65528 x 8 524224 FFF8 x 0008 7FFC0 524224 10 = 7FFC0 16 But FFF8 = 1111111111111000 can be a signed number 2’s comp = 0000000000001000 = $0008 = 8 10 Therefore, FFF8 can represent -8

35
Signed Multiplication Dec -8 x 8 -64 64 10 = 00000040 16 = 0000 0000 0000 0000 0000 0000 0100 0000 2’s comp = 1111 1111 1111 1111 1111 1111 0100 0000 = $FFFFFF40 Therefore, for signed multiplication $FFF8 x $0008 = $FFFFFF40 and not $7FFC0 The EMULS instruction performs SIGNED multiplication

36
Signed Multiplication product = $FFFFFFC0 is in Y:D ; EMULS signed 16 x 16 = 32 =00004000 ORG $4000 4000 CC FFF8 LDD #$FFF8 ;D = $FFF8 4003 CD 0008 LDY #$0008 ;Y = $0008 4006 1813 EMULS ;Y:D = D x Y

37
product = $FFFFFFC0 is in Y:D

38
Multiplication Note that EMUL is a 16 x 16 multiply that produces a 32-bit unsigned product. If the product fits into 16-bits, then it produces the correct SIGNED product.

39
FFF8 x 0008 7FFC0 -8 x 8 -64 = $FFC0 Correct 16-bit SIGNED result

40
Multiplication Even MUL can be used for an 8 x 8 = 8 SIGNED multiply

41
Note: A x B = A:B B contains the correct 8-bit SIGNED value

42
68HC12 Arithmetic Addition and Subtraction Shift and Rotate Instructions Multiplication Division

43
Binary Division 100111001100 1 0111 1 1 1100 0011 0 0 0000 01100 1 1100 0000 D C 9C

44
Hex Division EE BC2F C C x E = A8 C x E = A8 + A = B2 B28 9AF A

45
Hex Division EE BC2F C A x E = 8C A x E = 8C + 8 = 94 B28 9AF A 94C 63 Dividend = BC2F Divisor = EE Quotient = CA Remainder = 63

46
Hex Division EE BC2F C B28 9AF A 94C 63 =00004000 ORG $4000 4000 CD 0000 LDY #$0000 4003 CC BC2F LDD #$BC2F 4006 CE 00EE LDX #$00EE 4009 11 EDIV ;BC2F/EE = CA rem 63

47
Division

48
Y:D/X => Y Remainder in D

49
Divisor may be too small EE FFBC2F 11313 rem 85 Quotient does not fit in Y Overflow bit, V, will be set S X H I N Z V C Condition code register

51
S X H I N Z V C Condition code register Note overflow bit, V, set N and Z are undefined Y and D unchanged

52
S X H I N Z V C Condition code register Note divide by zero sets carry bit, C N, Z, and V are undefined Y and D unchanged

53
Division

55
Y:D/X => Y Remainder in D Note symmetric division Truncation toward zero Sign of remainder = sign of dividend

56
Y:D/X => Y Remainder in D Note symmetric division Truncation toward zero Sign of remainder = sign of dividend

57
Symetric Division (truncation toward zero) DividendDivisorQuotientRemainder 26 7 3 5 -26 7 -3 -5 26 -7 -3 5 -26 -7 3 -5 Floored Division (truncation toward minus infinity) DividendDivisorQuotientRemainder 26 7 3 5 -26 7 -4 2 26 -7 -4 -2 -26 -7 3 -5

58
D = $0001 X = $0002 FDIV => X = $8000 D = $0000 1212 = 0.5 = 0.1000000000000000 2 = 0.8000 16

60
D = $1234 X = $0010 IDIV => X = $0123 D = $0004

62
D = $FFE6 X = $0007 IDIVS => X = $FFFD D = $FFFB -26 7 = -3 remainder = -5

Similar presentations

OK

Microcontroller Fundamentals & Programming Arithmetic Instructions.

Microcontroller Fundamentals & Programming Arithmetic Instructions.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on solar air conditioning Funny ppt on human resource management Ppt on council of ministers bulgaria Ppt on self awareness worksheets Waters view ppt on ipad Ppt on high sea sales Ppt on linear equations in two variables Ppt on blood stain pattern analysis Ppt on the art of war wesley Ppt on electrical appliances and their uses