|
2. 196 ¾î¼Àºí·¯¹× ¿¬»ê
II. 196
Assember
II-II. º»°ÝÀûÀÎ 196
¾î¼Àºí¸®¾î
II-II-4. ³í¸®(Logical)
¿¬»ê ¹× Shift ¿¬»ê ¸í·É
´ÙÀ½Àº
196KCÀÇ ³í¸®
¿¬»ê ¹× shift ¿¬»êÀ»
¸ðµÎ
Á¤¸®ÇÑ °ÍÀÌ´Ù.
|
mnemonic |
byte |
state |
operand |
flags |
|
1st |
2nd |
3rd |
Z |
N |
C |
V |
VT |
ST |
|
AND |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
0 |
0 |
|
|
|
AND |
3+BEA |
5+CEA |
Dwreg |
Swreg |
waop |
¡î |
¡î |
0 |
0 |
|
|
|
ANDB |
2+BEA |
4+CEA |
breg |
waop |
|
¡î |
¡î |
0 |
0 |
|
|
|
ANDB |
3+BEA |
5+CEA |
Dbreg |
Swreg |
waop |
¡î |
¡î |
0 |
0 |
|
|
|
OR |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
0 |
0 |
|
|
|
ORB |
2+BEA |
4+CEA |
breg |
baop |
|
¡î |
¡î |
0 |
0 |
|
|
|
XOR |
2+BEA |
4+CEA |
wreg |
waop |
|
¡î |
¡î |
0 |
0 |
|
|
|
XORB |
2+BEA |
4+CEA |
breg |
baop |
|
¡î |
¡î |
0 |
0 |
|
|
|
NOT |
2 |
4 |
wreg |
|
|
¡î |
¡î |
0 |
0 |
|
|
|
NOTB |
2 |
4 |
breg |
|
|
¡î |
¡î |
0 |
0 |
|
|
|
SHL |
3 |
7+No. |
wreg |
cnt/breg |
|
¡î |
? |
¡î |
¡î |
¡è |
|
|
SHR |
3 |
7+No. |
wreg |
cnt/breg |
|
¡î |
0 |
¡î |
¡î |
¡è |
|
|
SHLB |
3 |
7+No. |
breg |
cnt/breg |
|
¡î |
? |
¡î |
¡î |
¡è |
|
|
SHRB |
3 |
7+No. |
breg |
cnt/breg |
|
¡î |
0 |
¡î |
¡î |
¡è |
|
|
SHLL |
3 |
7+No. |
lreg |
cnt/breg |
|
¡î |
? |
¡î |
¡î |
¡è |
|
|
SHRL |
3 |
7+No. |
lreg |
cnt/breg |
|
¡î |
0 |
¡î |
¡î |
¡è |
|
|
SHRA |
3 |
7+No. |
wreg |
cnt/breg |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SHRAB |
3 |
7+No. |
breg |
cnt/breg |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
SHRAL |
3 |
7+No. |
lreg |
cnt/breg |
|
¡î |
¡î |
¡î |
¡î |
¡è |
|
|
NORMAL |
3 |
11+No. |
lreg |
breg |
|
¡î |
? |
0 |
|
|
|
<À§ÀÇ Ç¥¿¡ ÀÖ´Â
operand ¾à¾îÀÇ
ÀǹÌ>
cnt :
0~15ÀÇ ¼ýÀÚ.
No. : shift ¼ö
II-II-4-1. ³í¸® ¿¬»ê
¸í·É
196ÀÇ
³í¸® ¿¬»ê ¸í·É¿¡´Â AND, OR, XOR, NOT
ÀÌ
ÀÖÀ¸¸ç, ³í¸® ¿¬»ê
¸í·ÉÀ»
½ÇÇàÇϸé C, V flag´Â ¹«Á¶°Ç clearµÈ´Ù.
(1) AND/ANDB
(logical AND in word/byte)
AND
¸í·É¿¡´Â 2°³ÀÇ
operand°¡ ÀÖ´Â
¸í·É°ú 3°³ÀÇ
operand°¡ ÀÖ´Â
¸í·ÉÀÌ ÀÖ´Ù.
Çü½Ä1>
AND/ANDB
<1st operand>, <2nd
operand> ;
<1st op> ¡ç <1st op> AND <2nd
op>
Çü½Ä2>
AND/ANDB
<1st op>, <2nd op>,
<3rd op> ; <1st op> ¡ç <2nd op> AND
<3rd op>
ex)
AND
40H, #0FF00H
; [40H] ¡ç [40H] AND FF00H
(word)
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
40H |
78H |
56H |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
40H |
00H |
56H |
0 |
0 |
0 |
0 |
|
|
ANDB
40H, 50H, 6100H[0] ; [40H] ¡ç [50H] AND [6100H]
(byte)
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
6100H |
A8H |
|
|
|
|
|
|
|
50H |
85H |
|
40H |
?? |
|
¸í·É ½ÇÇà
ÈÄ |
6100H |
A8H |
0 |
1 |
0 |
0 |
|
|
|
50H |
85H |
|
40H |
80H |
ÇÑÆí, AND
¸í·ÉÀº ¾î¶²
registerÀÇ
ƯÁ¤ ºñÆ®¸¦ 0À¸·Î
¸¸µé°í
½ÍÀ» ¶§¿¡ »ç¿ëÇÒ
¼ö
ÀÖ´Ù.
¿¹)
50HÀÇ 4,
5¹ø bit¸¦ 0À¸·Î
¸¸µé°í
½ÍÀ» ¶§
ANDB
50H, #11001111B ; 50HÀÇ bit4, 5¸¦
clear.
(2)
OR/ORB (logical OR in word/byte)
OR
¸í·É¿¡´Â µÎ °³ÀÇ
operand¸¸
»ç¿ëÇÒ ¼ö
ÀÖ´Ù.
Çü½Ä>
OR/ORB
<1st operand>, <2nd
operand> ;
<1st op> ¡ç <1st op> OR <2nd op>
ex)
ORB
50H, 60H
; [50H] ¡ç [50H] OR [60H]
(byte)
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
60H |
85H |
|
|
|
|
|
|
|
50H |
77H |
|
¸í·É ½ÇÇà
ÈÄ |
60H |
85H |
0 |
1 |
0 |
0 |
|
|
|
50H |
F7H |
AND¿Í
ºñ½ÁÇϰÔ, OR ¸í·ÉÀº ƯÁ¤ bit¸¦ 1·Î ¸¸µé ¶§ »ç¿ëÇÒ
¼ö ÀÖ´Ù.
¿¹)
50HÀÇ 1, 2, 7¹ø
bit¸¦
1·Î ¸¸µé°í ½ÍÀ»
¶§
ORB
50H, #10000110B ; 50HÀÇ bit1, 2, 7À»
set
(3)
XOR/XORB (logical eXclusive OR in
word/byte)
OR°ú ºñ½ÁÇÏ´Ù.
XOR˼
ƯÁ¤ bit¸¦ toggle
ÇÏ°í ½ÍÀ»
¶§ 1°ú ƯÁ¤
bit¸¦ XOR
¿¬»êÇϸé
µÈ´Ù.( 1 XOR 0 = 1,
1 XOR 1
= 0, 0
XOR 0 = 0, 0 XOR 1 = 1)
Çü½Ä>
XOR/XORB
<1st operand>, <2nd
operand> ;
<1st op> ¡ç <1st op> XOR <2nd op>
ex)
XOR
40H, [50H]+
; [40H] ¡ç [40H] XOR
([50H]°¡
°¡¸®Å°´Â memoryÀÇ
³»¿ë) (word)
; [50H]
¡ç [50H] + 2
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
7256H |
8FH |
54H |
|
|
|
|
|
|
|
50H |
56H |
72H |
|
40H |
36H |
C9H |
|
¸í·É ½ÇÇà
ÈÄ |
7256H |
8FH |
54H |
0 |
1 |
0 |
0 |
|
|
|
50H |
58H |
72H |
|
40H |
B9H |
9DH |
XOR˼
ƯÁ¤ bit¸¦ toggle(0¡æ1, 1¡æ0)ÇÒ ¶§ »ç¿ëÇÒ ¼ö
ÀÖ´Ù.
¿¹)
50HÀÇ 3, 4, 6 ¹ø
bit¸¦
toggleÇϰí
½ÍÀ» ¶§
XORB
50H, #01011000B ; 50HÀÇ bit3, 4, 6À»
toggle
(4)
NOT/NOTB (logical NOT in word/byte)
byte/word
´ÜÀ§·Î complementÇÏ´Â ¸í·ÉÀÌ´Ù. bit ´ÜÀ§ ¿¬»êÀº ÇÒ
¼ö ¾ø´Ù.
Çü½Ä>
NOT/NOTB
<word/byte
register>
ex)
NOTB
60H
|
address |
data |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
60H |
85H |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
60H |
7AH |
0 |
0 |
0 |
0 |
|
|
NOT
70H
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
70H |
FFH |
FFH |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
70H |
00H |
00H |
1 |
0 |
0 |
0 |
|
|
II-II-4-2. Shift
¸í·É
Shift
¸í·ÉÀº 8/16/32 bit data¸¦ Çѹø¿¡
ÀÚ¸® À̵¿ÇÏ´Â
¸í·ÉÀ̸ç, ÀÚ¸® À̵¿
counter¸¦
data(0~15)·Î
Ç¥½ÃÇÒ ¼öµµ ÀÖ°í,
byte register(count ¼ö 16~255)¸¦ ÀÌ¿ëÇÒ
¼öµµ ÀÖ´Ù.
(1)
SHL/SHLB/SHLL (Shift left in
word/byte/long)
ÁöÁ¤µÈ ¼ö¸¸Å
¿ÞÂÊÀ¸·Î
shiftÇÏ´Â
¸í·ÉÀÌ´Ù. ÃÖ»óÀ§ bit´Â
C flag·Î
ä¿öÁö°Ô µÇ°í, ÃÖÇÏÀ§
bit´Â
0À¸·Î ä¿öÁö°Ô µÈ´Ù.
¶Ç 1bit shift
left´Â
¡¿2 ¸í·É°ú
°°´Ù.
Çü½Ä>
SHL/SHLB/SHLL
<word/byte/long register>,
#data
SHL/SHLB/SHLL <word/byte/long
register>, <byte register>
ex)
SHL
50H, #2
; [50H] word¸¦ ¿ÞÂÊÀ¸·Î
2bit shift
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
50H |
3DH |
53H |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
50H |
F4H |
4CH |
0 |
- |
1 |
0 |
0 |
- |
(2)
SHR/SHRB/SHRL (Shift right in
word/byte/long)
ÁöÁ¤µÈ ¼ö¸¸Å
¿À¸¥ÂÊÀ¸·Î
shiftÇÏ´Â
¸í·ÉÀÌ´Ù. ÃÖÇÏÀ§ bit´Â
C flag·Î
ä¿öÁö°Ô µÇ°í, ÃÖ»óÀ§
bit´Â
0À¸·Î ä¿öÁö°Ô µÈ´Ù.
¶Ç shift
right´Â
¡À2 ¸í·É°ú °°´Ù.
ÇÑÆí, ST
bit´Â
¸í·É ½ÃÀÛ ¶§¿¡
clearµÇ°í, shift
right ÇÏ´Â
µ¿¾È C flag¿¡ 1ÀÌ
shift µÇ¸é
setµÈ´Ù.
Çü½Ä>
SHR/SHRB/SHRL
<word/byte/long register>,
#data
SHR/SHRB/SHRL <word/byte/long
register>, <byte register>
ex)
SHR
50H, #4
; [50H] word¸¦ ¿À¸¥ÂÊÀ¸·Î 4bit shif
|
address |
low
byte |
high
byte |
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
50H |
CDH |
ABH |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
50H |
BCH |
0AH |
0 |
0 |
1 |
0 |
|
1 |
(3)
SHRA/SHRAB/SHRAL
ÁöÁ¤µÈ ¼ö¸¸Å
¿À¸¥ÂÊÀ¸·Î
shiftµÇ¸ç,
ÃÖÇÏÀ§ bit´Â C
flag·Î shiftµÇ°í,
ÃÖ»óÀ§ bit´Â ÃÖ»óÀ§
bit°¡
rotateµÈ´Ù.
Áï, 1bit shift´Â signed dataÀÇ °æ¿ì
¡À2 ¸í·ÉÀÌ
µÈ´Ù. ST flag´Â
À§ÀÇ °æ¿ì¿Í
°°ÀÌ µ¿ÀÛÇÑ´Ù.
Çü½Ä>
SHRA/SHRAB/SHRAL <word/byte/long
register>, #data
SHRA/SHRAB/SHRAL <word/byte/long
register>, <byte register>
ex)
SHRAB
41H, #3
|
address |
|
Z |
N |
C |
V |
VT |
ST |
|
¸í·É ½ÇÇà
Àü |
41H |
F0H |
|
|
|
|
|
|
|
¸í·É ½ÇÇà
ÈÄ |
41H |
F2H |
0 |
0 |
1 |
0 |
|
1 |
II-II-4-3. Normalize ¸í·É
Nomalize ¸í·ÉÀº long-integer operand¸¦ normalizeÇÑ´Ù. Áï,
ÃÖ»óÀ§ bit°¡
1ÀÌ µÉ ¶§±îÁö shift
leftÇÑ´Ù.
¸¸¾à 0~31±îÁö
shift ÇÏ´Â µ¿¾È
°è¼ÓÇØ¼ ÃÖ»óÀ§ bit°¡
1À̸é,
ÀÌ ¸í·ÉÀº Á¤ÁöµÇ°í Z
flag´Â
setµÈ´Ù. ÀÌ ¶§
shiftµÈ
°ªÀº byte operand¿¡ ÀúÀåµÈ´Ù.
Âü°í ¼Àû : Micro controller 80196 ±âÃʺÎÅÍ
ÀÀ¿ë±îÁö - Â÷¿µ¹è Àú

|