|
2. 196À»
¹è¿öº¸ÀÚ
II. 196
Assember
II-II. º»°ÝÀûÀÎ 196
¾î¼Àºí¸®¾î
II-II-2. »ê¼ú ¿¬»ê
¸í·É
II-II-2-1.
PSW(Program Status Word)
80C196KC
ÀÇ ¸í·ÉÀÌ ¾ÕÀÇ
flag¿¡
¹ÌÄ¡´Â ¿µÇâÀº ´ÙÀ½°ú
°°´Ù.
|
¸í·É |
Flags |
¸í·É |
Flags |
¸í·É |
Flags |
|
Z |
N |
C |
V |
VT |
ST |
Z |
N |
C |
V |
VT |
ST |
Z |
N |
C |
V |
VT |
ST |
|
LD/LDB |
|
|
|
|
|
|
SUBC/SUBCB |
¡é |
¡î |
¡î |
¡î |
¡è |
|
condi.
branch |
|
|
|
|
|
|
|
ST/STB |
|
|
|
|
|
|
CMP/CMPB/CMPL |
¡î |
¡î |
¡î |
¡î |
¡è |
|
DJNZ/DJNZW |
|
|
|
|
|
|
|
XCH/XCHB |
|
|
|
|
|
|
MUL/MULU |
|
|
|
|
|
? |
NOP |
|
|
|
|
|
|
|
BMOV,BMOVI |
|
|
|
|
|
|
MULB/MULUB |
|
|
|
|
|
? |
SKIP |
|
|
|
|
|
|
|
LDBSE/LDBZE |
|
|
|
|
|
|
DIV/DIVU |
¡î |
¡î |
¡î |
¡î |
¡è |
|
TIJMP |
|
|
|
|
|
|
|
INC/INCB |
¡î |
¡î |
¡î |
¡î |
¡è |
|
DIVB/DIVUB |
¡î |
¡î |
¡î |
¡î |
¡è |
|
PUSH/POP |
|
|
|
|
|
|
|
DEC/DECB |
¡î |
¡î |
¡î |
¡î |
¡è |
|
AND/ANDB |
¡î |
¡î |
0 |
0 |
|
|
PUSHF |
0 |
0 |
0 |
0 |
0 |
0 |
|
CLR/CLRB |
1 |
0 |
0 |
0 |
|
|
OR/ORB |
¡î |
¡î |
0 |
0 |
|
|
POPF |
¡î |
¡î |
¡î |
¡î |
¡î |
¡î |
|
NEG/NEGB |
¡î |
¡î |
¡î |
¡î |
¡è |
|
XOR/XORB |
¡î |
¡î |
0 |
0 |
|
|
PUSHA |
0 |
0 |
0 |
0 |
0 |
0 |
|
EXT/EXTB |
¡î |
¡î |
0 |
0 |
|
|
NOT/NOTB |
¡î |
¡î |
0 |
0 |
|
|
POPA |
¡î |
¡î |
¡î |
¡î |
¡î |
¡î |
|
SETC |
|
|
1 |
|
|
|
SHL/SHLB/SHLL |
¡î |
¡î |
¡î |
¡î |
¡è |
|
SCALL/LCALL |
|
|
|
|
|
|
|
CLRC |
|
|
0 |
|
|
|
SHR/SHRB/SHRL |
¡î |
¡î |
¡î |
0 |
|
¡î |
RET |
|
|
|
|
|
|
|
CLRVT |
|
|
|
|
0 |
|
SHRA/SHRAB |
¡î |
¡î |
¡î |
0 |
|
¡î |
DI/EI |
DPTS/EPTS |
|
ADD/ADDB |
¡î |
¡î |
¡î |
¡î |
¡è |
|
SHRAL |
¡î |
¡î |
¡î |
0 |
|
¡î |
IPLPD |
|
|
|
|
|
|
|
ADDC/ADDCB |
¡é |
¡î |
¡î |
¡î |
¡è |
|
NORML |
¡î |
¡î |
¡î |
0 |
|
|
TRAP |
|
|
|
|
|
|
|
SUB/SUBB |
¡î |
¡î |
¡î |
¡î |
¡è |
|
SJMP/LJMP/BR |
|
|
|
|
|
|
RST |
|
|
|
|
|
|
*
flagÀÇ ÀǹÌ
- ¡î :
¸í·É °á°ú¿¡ µû¶ó¼
clear/set 0 :
clear 1 :
set
¡è :
¸í·É µ¿ÀÛ¿¡ µû¶ó¼
set, °áÄÚ
clearµÇÁö
¾Ê´Â´Ù.
¡é :
¸í·É µ¿ÀÛ¿¡ µû¶ó¼
clear, °áÄÚ
setµÇÁö
¾Ê´Â´Ù.
°ø¹é :
flag¿¡
¿µÇâÀ» ÁÖÁö
¾Ê´Â´Ù. ? :
Á¤ÀǵÇÁö
¾ÊÀ½
´ÙÀ½Àº 196KC
»ê¼ú ¿¬»ê
¸í·ÉÀ» ¸ðµÎ Á¤¸®ÇÑ
°ÍÀÌ´Ù.
|
mnemonic |
byte |
state |
operands |
flags |
|
1st |
2nd |
3rd |
Z |
N |
C |
V |
VT |
ST |
|
INC |
2 |
4 |
wreg |
|
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
INCB |
2 |
4 |
breg |
|
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
DEC |
2 |
4 |
wreg |
|
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
DECB |
2 |
4 |
breg |
|
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
CLR |
2 |
4 |
wreg |
|
|
1 |
0 |
0 |
0 |
- |
- |
|
CLRB |
2 |
4 |
breg |
|
|
1 |
0 |
0 |
0 |
- |
- |
|
NEG |
2 |
4 |
wreg |
|
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
NEGB |
2 |
4 |
breg |
|
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
EXT |
2 |
4 |
lreg |
|
|
¡î |
¡î |
0 |
0 |
|
|
|
EXTB |
2 |
4 |
wreg |
|
|
¡î |
¡î |
0 |
0 |
|
|
|
SETC |
2 |
4 |
|
|
|
|
|
1 |
|
|
|
|
CLRC |
1 |
4 |
|
|
|
|
|
0 |
|
|
|
|
CLRVT |
1 |
4 |
|
|
|
|
|
|
|
0 |
|
|
ADD |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
ADD |
2+BEA |
4+CEA |
Dwreg |
Swreg |
waop |
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
ADDB |
2+BEA |
4+CEA |
breg |
baop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
ADDB |
2+BEA |
4+CEA |
Dbreg |
Sbreg |
baop |
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
ADDC |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
ADDCB |
2+BEA |
4+CEA |
breg |
baop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SUB |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SUB |
2+BEA |
4+CEA |
Dwreg |
Swreg |
waop |
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SUBB |
2+BEA |
4+CEA |
breg |
baop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SUBB |
2+BEA |
4+CEA |
Dbreg |
Sbreg |
baop |
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SUBC |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SUBCB |
2+BEA |
4+CEA |
breg |
baop |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
MUL |
3+BEA |
29+CEA |
lreg |
waop |
|
|
|
|
|
|
? |
|
MUL |
3+BEA |
30+CEA |
lwreg |
wreg |
waop |
|
|
|
|
|
? |
|
MULB |
3+BEA |
21+CEA |
wreg |
baop |
|
|
|
|
|
|
? |
|
MULB |
3+BEA |
22+CEA |
wbreg |
breg |
baop |
|
|
|
|
|
? |
|
MULU |
2+BEA |
25+CEA |
wreg |
waop |
|
|
|
|
|
|
? |
|
MULU |
3+BEA |
26+CEA |
lreg |
wreg |
waop |
|
|
|
|
|
? |
|
MULUB |
2+BEA |
17+CEA |
wreg |
baop |
|
|
|
|
|
|
? |
|
MULUB |
2+BEA |
18+CEA |
wreg |
breg |
baop |
|
|
|
|
|
? |
|
DIV |
2+BEA |
29+CEA |
lreg |
waop |
|
¡î |
¡î |
¡î |
¡î |
¡î |
|
|
DIVB |
2+BEA |
21+CEA |
wreg |
baop |
|
¡î |
¡î |
¡î |
¡î |
¡î |
|
|
DIVU |
2+BEA |
25+CEA |
lreg |
waop |
|
¡î |
¡î |
¡î |
¡î |
¡î |
|
|
DIVUB |
2+BEA |
17+CEA |
wreg |
baop |
|
¡î |
¡î |
¡î |
¡î |
¡î |
|
operand
¾à¾îÀÇ ÀǹÌ
- S.. :
Source D.. :
Destination
II-II-2-2. Áõ°¡/°¨¼Ò
¸í·É
(1) INC/INCB,
DEC/DECB (Increase, Decrease)
registerÀÇ
³»¿ëÀ» +1Çϰųª -1ÇÏ´Â ¸í·ÉÀÌ´Ù. Áõ°¡/°¨¼Ò ¸í·ÉÀº operand°¡ ÇÑ
°³À̰í indirect addressingÀº »ç¿ëÇÒ
¼ö
¾ø´Ù.
±×¸®°í C, N,
V, VT, Z flag¿¡ ¿µÇâÀ» ÁØ´Ù.
Çü½Ä>
INC/INCB
(word/byte register) ; 1 Áõ°¡
DEC/DECB
(word/byte register) ; 1 °¨¼Ò
ex)
INC
80H
; 80HÀÇ word º¯¼öÀÇ ³»¿ëÀ» 1 Áõ°¡½ÃŲ´Ù.
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
80H |
FFH |
FFH |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
80H |
00H |
00H |
1 |
0 |
1 |
0 |
0 |
|
INCB
87H
; 87HÀÇ byte
º¯¼öÀÇ ³»¿ëÀ» 1
°¨¼Ò½ÃŲ´Ù.
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
87H |
7FH |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
87H |
80H |
0 |
0 |
0 |
1 |
1 |
|
II-II-2-3. Register clear ¹×
Sign extention ¸í·É
(1)
CLR/CLRB (Clear word/Clear Byte)
word/byte
reigsterÀÇ ³»¿ëÀ»
clear('0') ½ÃŲ´Ù. ÀÌ ¸í·É ¿ª½Ã
oeprand°¡ ÇÑ
°³ »ÓÀ̰í indirect
addressingÀº »ç¿ëµÉ ¼ö ¾ø´Ù.
Çü½Ä>
CLR/CLRB
(word/byte register)
ex)
CLR
70H
; 70HÀÇ word º¯¼öÀÇ ³»¿ëÀ» clear½ÃŲ´Ù.([70H] ¡ç 0)
ÀÌ
¸í·ÉÀº
LD
70H, #0
; [70H] ¡ç
0
°ú °°Àº
¸í·ÉÀÌ´Ù.
±×·¯³ª ½ÇÇà ½Ã°£°ú
code ±æÀ̰¡
´õ ª´Ù. µû¶ó¼
register¿¡
0À» ³Ö¾î¾ß ÇÏ´Â
°æ¿ì
ÀÌ ¸í·ÉÀ» ¾²´Â
°ÍÀÌ
´õ
È¿°úÀûÀÏ °ÍÀÌ´Ù.
(2)
EXT/EXTB (EXTention word/EXTention Byte)
word/byteÀÇ
³»¿ëÀ» ºÎÈ£¸¦ È®ÀåÇÏ¿© long/word·Î ÀúÀåÇÑ´Ù. ÀÌ ¸í·ÉÀº data Àü¼Û ¸í·ÉÀÇ
LDBSE¿Í ºñ½ÁÇÑ ¸í·ÉÀ̳ª,
operand°¡ ÇÑ
°³»ÓÀ̶ó´Â °ÍÀÌ ´Ù¸£´Ù. ¶Ç
wordÀÇ ³»¿ëÀ» ºÎÈ£ È®ÀåÇÏ¿© long¿¡ ÀúÀåÇÑ´Ù´Â °Íµµ ´Ù¸£´Ù.
±×¸®°í
LDBSE´Â PSW¿¡
¿µÇâÀ» ÁÖÁö ¾ÊÁö¸¸,
ÀÌ
¸í·ÉÀº °¢ flag¿¡
¿µÇâÀ»
Áشٴ °ÍÀÌ ´Ù¸¥
Á¡ÀÌ´Ù.
Çü½Ä>
EXT
(long word register) ; word¸¦ ºÎÈ£ È®ÀåÇØ¼ long word·Î ÀúÀåÇÑ´Ù.
EXTB
(word register) ; byte¸¦ ºÎÈ£
È®ÀåÇØ¼
word·Î
ÀúÀåÇÑ´Ù.
ex)
EXT
50H
; 50H wordÀÇ ³»¿ëÀ»
ºÎÈ£ È®ÀåÇÏ¿© 50H¿¡ longÀ¸·Î ÀúÀåÇÑ´Ù.
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
52H |
?? |
?? |
|
|
|
|
|
|
|
50H |
14H |
8FH |
|
¸í·É ½ÇÇà
ÈÄ |
52H |
FFH |
FFH |
0 |
1 |
0 |
0 |
|
|
|
50H |
8FH |
14H |
(C, V flag´Â
¹«Á¶°Ç clear
µÈ´Ù.
EXTB
60H
; 60H byteÀÇ
³»¿ëÀ» ºÎÈ£
È®ÀåÇÏ¿© 60H¿¡
word·Î ÀúÀåÇÑ´Ù.
LDBSE
60H, 70H
; 70H byteÀÇ
³»¿ëÀ» ºÎÈ£ È®ÀåÇÏ¿© 60H¿¡ word·Î ÀúÀåÇÑ´Ù. ±×·¯³ª
;
flag¿¡ ¿µÇâÀ» ÁÖÁö
¾Ê´Â´Ù.
(3)
NEG/NEGB (Negative/Negative Byte)
word/byte
register¸¦ 2's
complement¸¦
ÃëÇØ¼ ÀúÀåÇÑ´Ù. 2ÀÇ º¸¼ö¸¦
Çϱâ À§Çؼ´Â (0 - data)ÀÇ ¿¬»êÀ»
ÇØ¼
borrow°¡
¹ß»ýÇÏÁö¸¸, carry
flag´Â
complementµÇ¾î
³ªÅ¸³´Ù. ¶Ç, ÀÌ
¸í·ÉÀ»
NOT°ú È¥µ¿Çϸé
¾ÈµÈ´Ù.
Çü½Ä>
NEG/NEGB
(word/byte register)
ex)
NEG
80H
; word register 80HÀÇ ³»¿ëÀ» 2's complement
ÇÑ´Ù.
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
80H |
01H |
00H |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
80H |
FFH |
FFH |
0 |
1 |
0 |
0 |
0 |
|
NEGB
33H
; byte register 33HÀÇ ³»¿ëÀ»
2's complement ÇÑ´Ù.
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
32H |
?? |
80H |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
32H |
?? |
80H |
0 |
0 |
0 |
1 |
1 |
|
80H¸¦ 2's
complementÇϸé
80H°¡
µÈ´Ù. µû¶ó¼ overflowÀÌ´Ù. (-128Àº ¾ç¼ö·Î
Ç¥Çö ºÒ°¡´É(128)) ¶Ç ¿ø·¡
80H´Â
(-)Àε¥, À̸¦
2's complement¸¦ ÃëÇϸé (+)°¡ µÇ¾î¾ß Çϱ⠶§¹®¿¡, N flag´Â '0'ÀÌ µÈ´Ù.
(4) SETC/CLRC
(Set Carry/ Clear Carry)
Carry flag¸¸ setÇϰųª clear
ÇÏ´Â
¸í·ÉÀÌ´Ù.
operand´Â ÇÊ¿ä ¾ø´Ù.
(5) CLRVT (Clear
VT flag)
VT
flag¸¦ clearÇÏ´Â
¸í·ÉÀÌ´Ù. V flag´Â
¸í·ÉÀ¸·Î clearµÉ ¼ö
¾øÀ¸³ª VT
flag´Â
ÀÌ ¸í·ÉÀ¸·Î clear°¡
°¡´ÉÇÏ´Ù.
µû¶ó¼
¿©·¯ ¿¬»êÀÌ ³¡³ ÈÄ
¸ðµç °úÁ¤ÀÇ overflow¸¦ °Ë»çÇÏ´Â
µ¥¿¡ VT flag¸¦ »ç¿ëÇϰí ÀÌ
¸í·ÉÀ¸·Î clear ÇÏ¸é µÈ´Ù.
ÀÌ
¸í·Éµµ operand´Â ÇÊ¿ä ¾ø´Ù.
II-II-2-4. µ¡¼À/»¬¼À
¸í·É
(1)
ADD/ADDB/SUB/SUBB (Addition word/Byte, Subtraction
word/Byte)
ÀÌ ¸í·ÉµéÀº
operand°¡
2°³ÀÎ °Í°ú 3°³ÀÎ
°ÍÀÌ
ÀÖ´Ù. (¾ÕÀå¿¡¼
¼³¸í)
Çü½Ä1>
ADD/ADDB
<1st operand>, <2nd
operand> ;
<1st operand> ¡ç <1st op> + <2nd
op>
SUB/SUBB
<1st operand>, <2nd
operand> ;
<1st operand> ¡ç <1st op> - <2nd
op>
1st
operand´Â register, 2nd
operand´Â
direct, indirect, immediate addressing °¡´É
Çü½Ä2>
ADD/ADDB
<1st op>, <2nd op>,
<3rd op> ; <1st op> ¡ç <2nd op> + <3rd
op>
SUB/SUBB
<1st op>, <2nd op>,
<3rd op> ; <1st op> ¡ç <2nd op> - <3rd
op>
1st, 2nd
operand´Â register, 3rd
operand´Â
direct, indirect, immediate addressing °¡´É
ex)
ADD
40H, 50H
; [40H] ¡ç [40H] + [50H]
(word)
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
°á°ú°¡
0ÀÌ ¾Æ´Ï¹Ç·Î Z=0ÀÌ´Ù.
(+)+(+)ÀÇ
¿¬»êÀ» Çߴµ¥
°á°ú´Â (-)°¡
³ª¿Ô´Ù. µû¶ó¼,
overflowÀ̹ǷΠV=1, VT=1ÀÌ´Ù. °á°ú°¡ (+)À̾î¾ß ÇÑ´Ù´Â °ÍÀ» ¾Ë¸®±â À§ÇØ N=0ÀÌ µÇ¾ú´Ù. carry´Â ¾øÀ¸¹Ç·Î C=0ÀÌ´Ù. |
|
¸í·É ½ÇÇà
Àü |
50H |
78H |
34H |
|
|
|
|
|
|
|
40H |
49H |
59H |
|
¸í·É ½ÇÇà
ÈÄ |
50H |
78H |
34H |
0 |
0 |
0 |
1 |
1 |
|
|
40H |
C1H |
8DH |
ADDB
30H, 40H, 50H
; [30H] ¡ç
[40H] + [50H] (byte)
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
50H |
78H |
|
|
|
|
|
|
|
40H |
88H |
|
30H |
?? |
|
¸í·É ½ÇÇà
ÈÄ |
50H |
78H |
1 |
0 |
1 |
0 |
0 |
|
|
40H |
88H |
|
30H |
00H |
SUBB
30H, 40H, #50H
; [30H] ¡ç
[40H] + 50H (byte)
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
40H |
70H |
|
|
|
|
|
|
|
30H |
?? |
|
¸í·É ½ÇÇà
ÈÄ |
40H |
70H |
0 |
0 |
0 |
0 |
0 |
|
|
30H |
20H |
SUB
30H, [40H]+
; [30H] ¡ç
[30H] - [40H]°¡
°¡¸®Å°´Â ³»¿ë
; [40H]
¡ç [40H] + 2
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
40H |
80H |
12H |
|
|
|
|
|
|
|
30H |
56H |
72H |
|
1280H |
36H |
79H |
|
¸í·É ½ÇÇà
ÈÄ |
40H |
82H |
12H |
0 |
1 |
0 |
0 |
0 |
|
|
30H |
20H |
F9H |
(2)
ADDC/ADDCB/SUBC/SUBCB (Add
word/byte with Carry, Sub word/byte with
Carry)
carry¿Í
ÇÔ²² ´õÇϰųª »©´Â ¸í·ÉÀÌ´Ù. ÀÏ¹Ý µ¡¼À/»¬¼À°ú ´Þ¸®
operand´Â 2°³ÀÌ´Ù.
ÀÌ
¸í·ÉÀº ¿©·¯ byteÀÇ
µ¡¼À/»¬¼À¿¡ »ç¿ëÇϱâ À§ÇÑ °ÍÀÌ´Ù. Áï, ¾Õ¼± ¿¬»ê¿¡¼ÀÇ carry³ª borrow¸¦ ¿¬»ê¿¡¼ »ç¿ëÇÑ´Ù.
(³ôÀº ÀÚ¸®¸¦
°è»êÇÑ´Ù.)
Çü½Ä>
ADDC/ADDCB
<1st op>, <2nd
op> ;
<1st op> ¡ç <1st op> + <2nd op> +
carry
SUBC/SUBCB
<1st op>, <2nd
op> ;
<1st op> ¡ç <1st op> - <2nd op> -
ex)
ADDC
40H, 50H
; [40H] ¡ç [40H] + [50H] +
carry
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
50H |
78H |
34H |
|
|
1 |
|
|
|
|
40H |
49H |
59H |
|
¸í·É ½ÇÇà
ÈÄ |
50H |
78H |
34H |
0 |
0 |
0 |
1 |
1 |
|
|
40H |
C2H |
8DH |
SUBCB
40H, #54H
; [40H] ¡ç
[40H] - 54H -
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
40H |
76H |
|
|
0 |
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
40H |
21H |
0 |
0 |
1 |
0 |
0 |
|
II-II-2-5. °ö¼À
¸í·É
°ö¼À ¸í·É¿¡´Â
ºÎÈ£
ÀÖ´Â(signed) °ö¼À°ú
ºÎÈ£ ¾ø´Â(unsigned) °ö¼ÀÀÇ °æ¿ì°¡ ÀÖÀ¸¸ç, flag¿¡´Â ¿µÇâÀ» ÁÖÁö ¾Ê°í,
ST flag´Â
Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù. word ¡¿ word = long (at most), byte ¡¿ byte =
word (at most)ÀÇ ¿¬»êÀ» ÇÑ´Ù.
(1)
ºÎÈ£ ÀÖ´Â °ö¼À
¸í·É -
MUL/MULB (signed
Multiplication)
word
¡¿ word = long, byte ¡¿ byte = wordÀÇ °ö¼ÀÀ»
ÇÏ´Â ¸í·ÉÀÌ´Ù.
ÀÌ ¸í·É ¿ª½Ã ADD,
SUB¿Í ¸¶Âù°¡Áö·Î ¿ª½Ã operand°¡ µÎ °³ÀÎ
°æ¿ì¿Í ¼¼ °³ÀÎ °æ¿ì°¡
ÀÖ´Ù.
¶Ç
ÀÌ
°æ¿ì ¸¶Áö¸·
operand´Â ¸ðµç
¹øÁö ÁöÁ¤ ¹æ¹ýÀ»
»ç¿ëÇÒ
¼ö°¡ ÀÖ´Ù.
Çü½Ä1>
MUL/MULB
<1st op>, <2nd
op> ; 1st
operandÀÇ
word/byte registerÀÇ ³»¿ë°ú 2nd
; operand
word/byte operand¸¦ °öÇØ¼ 1st
operand
;
ÀÇ long/word register¿¡ ÀúÀåÇÑ´Ù.
Çü½Ä2>
MUL/MULB
<1st op>, <2nd op>,
<3rd op>
; 2nd
operandÀÇ word/byte
registerÀÇ
³»¿ë°ú 3rd operandÀÇ word/byte
operand¸¦
;
°öÇØ¼ 1st operandÀÇ long/word¿¡ ÀúÀåÇÑ´Ù.
ex)
MUL
40H, #1000H
; [40H long word] ¡ç [40H word]
¡¿ 1000H
(signed)
|
address |
low
byte |
high
byte |
|
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
42H |
??H |
??H |
|
|
|
|
|
|
|
|
40H |
43H |
59H |
|
¸í·É ½ÇÇà
ÈÄ |
42H |
94H |
05H |
high
word |
|
|
|
|
|
? |
|
40H |
00H |
30H |
low
word |
MULB
30H, 40H, 50H
; [30H word] ¡ç [40H byte] ¡¿ [50H byte]
(signed) |