hxJNUWVFri114145

Download Report

Transcript hxJNUWVFri114145

ปฏิบัตกิ ารแบบแยก
BRANCH OPERATION
ปฏิบัติการแบบแยก
 เป็ นคำสัง่ ที่ใช้เปลี่ยนลำดับของกำรกระทำกำรตำมเงื่อนไข
แบ่งออกเป็ น 3 ประเภท
คำสัง่ กำรกระโดด
คำสัง่ เรี ยกโปรแกรมย่อย
คำสัง่ กลับสู่ โปรแกรมหลัก และคำสัง่ เริ่ มทำต่อ
คำสั่ งกำรกระโดด (Jump Instructions)
 แบ่งออกเป็ น 2 กลุ่ม คือ
 กลุ่มกระโดดสมบูรณ์ (Absolute
Jump) เป็ นคำสัง่ ขนำด 3
ไบต์ ประกอบด้วยตัวถูกดำเนินกำรซึ่งจะกำหนดเลขที่อยูข่ นำด 16 บิต
เมื่อกระทำคำสัง่ ลำดับโปรแกรมจะเปลี่ยนไปตำแหน่งที่กำหนด
 กลุ่มกระโดดสัมพันธ์ (Relative Jump) เป็ นคำสัง่ ขนำด 2 ไบต์
ประกอบด้วยตัวถูกดำเนินกำรซึ่งจะกำหนดระยะห่ำง 8 บิต เพื่อแสดง
กำรกระโดดไปข้ำงหน้ำหรื อถอยหลัง ในรู ป 2’Complement
กลุ่มกระโดดสมบูรณ์ (Absolute Jump)
 แบ่งออกเป็ น 2 ประเภท
กลุ่มกระโดดสมบูรณ์ แบบไม่มีเงื่อนไข
 กลุ่มกระโดดสมบูรณ์ แบบมีเงื่อนไข ใช้ร่วมกับสถำนะแฟลก 4 ตัว ได้แก่ S , Z , Cy ,
P/V ดังนี้

Opcode
JP
Operand
16-bit
Byte
3
JP
JP
JP
JP
C,16-bit
Z,16-bit
NC,16-bit
NZ,16-bit
3
3
3
3
Description
กระโดดแบบไม่มีเงือนไข ไปยังตำแหน่ง
หน่วยควำมจำที่กำหนด
กระโดดเมื่อมีตวั ทด
กระโดดเมื่อแฟลก Z เป็ นศูนย์
กระโดดเมื่อไม่มีตวั ทด
กระโดดเมื่อแฟลก Z ไม่เป็ นศูนย์
ตัวอย่างที่ 1
 จงเขียนคำสัง่ เพื่อโหลดไบต์ฐำนสิ บหก 2 ไบต์ ได้แก่ Byte1 และ Byte2 ลงใรรี จี
สเตอร์ B และ C ตำมลำดับแล้วบวกไบต์เหล่ำนั้น ถ้ำผลรวมมำกกว่ำ 8 บิต ให้
แสดงผล 00H เป็ นเงื่อนไขค่ำเกินที่เอำต์พอร์ต PORT1 และเคลียร์ตำแหน่ง
หน่วยควำมจำ OUTBUF ถ้ำผลรมน้อยกว่ำ 8 บิต ให้เก็บผลรวมไว้ที่ตำแหน่ง
หน่วยควำมจำ OUTBUF
กำหนด Byte1 = 9AH
Byte2 = A7H
PORT1 = 01H
OUTBUF = 2050H
Label
Opcode ,Operand
LD B,9AH
LD C,A7H
LD A,C
ADD A,B
JP NC,STORE
LD A,00H
OUT (PORT1),A
STORE:
LD (OUTBUF),A
Comment
กลุ่มกระโดดสัมพันธ์ (Relative Jump)
 แบ่งออกเป็ น 2 ประเภท
กลุ่มกระโดดสัมพันธ์ แบบไม่มีเงื่อนไข
 กลุ่มกระโดดสัมพันธ์ แบบมีเงื่อนไข

เรำสำมำรถกำหนดเลขที่อยูใ่ หม่ซ่ ึงเป็ นลำดับของโปรแกรมโดยค่ำออฟเซ็ต(ระยะห่ำง) ขนำด 8 บิต
ที่สมั พันธ์กบั คำสัง่ กำรกระโดด
 ระยะห่ ำงเป็ นบวก หมำยถึง กำรกระโดดไปข้ำงหน้ำ
 ระยะห่ ำงเป็ นลบ หมำยถึง กำรกระโดดถอยหลัง
 d = ระยะห่ ำง = displacement
รายการคาสั่งกระโดดแบบสัมพันธ์ (Relative Jump)
Mnemonics
JR d
JR Z,d
JR NZ,d
JR C,d
JR NC,d
Byte
2
2
2
2
2
Description
กระโดดแบบสัมพันธ์แบบไม่มเี งือ่ นไข
กระโดดสัมพันธ์ เมือ่ Z=1
กระโดดสัมพันธ์ เมือ่ Z=0
กระโดดสัมพันธ์ เมือ่ Cy=1
กระโดดสัมพันธ์ เมือ่ Cy=0