รีจิสเตอร์ Register
|
ปรับปรุง : 2562-02-01 (ปรับ template) |
Digital logic | OS | คำสั่งดอส | Batch | Debug | Assembly | GWBasic | Docker | |
ความหมาย (Meaning) #1 เป็นส่วนประกอบหนึ่งใน Microprocessor ทำหน้าที่ในการเก็บข้อมูลชั่วคราว #2 หน่วยความจำขนายย่อยที่เก็บผลจากการคำนวณ โดยแยกพื้นที่ส่วนหนึ่งของหน่วยความจำภายในไมโครโปรเซสเซอร์มาใช้ นั่นคือ Register เป็นหน่วยความจำส่วนหนึ่งใน CPU แนะนำเว็บ (Web Guides) - Assembly turorial : http://www.xs4all.nl/~smit/asm01001.htm - http://www.school.net.th/library/snet1/hardware/z8086/cpu8086.html C:\MASM611\BIN>debug -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=119B ES=119B SS=119B CS=119B IP=0100 NV UP EI PL NZ NA PO NC 119B:0100 C8 DB C8 -r SS SS 119B : เปลี่ยนค่าของ Register ได้ตามต้องการ -d 119B:0100 C8 C6 06 71 E1 03 BA A4-83 F9 C3 3C 01 01 00 00 ...q.......<.... 119B:0110 B2 00 00 00 22 00 12 2F-BD FC 46 36 99 00 8A 11 ...."../..F6.... 119B:0120 2E 74 16 3C 5B 74 12 3C-5D 74 0E 3C 2B 74 0A 3C .t.<[t.<]t.<+t.< 119B:0130 2C 74 06 3C 3B 74 02 3C-3D C3 3A C0 C3 3C 20 74 ,t.<;t.<=.:..< t 119B:0140 02 3C 09 C3 06 57 0E 07-E8 13 00 86 F2 89 0E 90 .<...W.......... 119B:0150 84 89 16 92 84 BA 7E 84-E8 24 24 5F 07 C3 BF B2 ......~..$$_.... 119B:0160 E8 B4 2A CD 21 98 51 52-8B F0 D1 E6 03 F0 8B CE ..*.!.QR........ 119B:0170 A1 12 83 B6 03 57 E8 A9-25 5F 03 F1 B9 03 00 F3 .....W..%_...... -q C:\MASM611\BIN> |
http://www.ik.ku.lt/lessons/konspekt/kti/12_files/Assembler%20Tutorial.htm 1. รีจิสเตอร์ทั่วไป (General Register) มีหน้าที่เก็บข้อมูล หรือผลลัพธ์จากการคำนวณ AX : Accumulator Register (สำหรับการอ้างอิงแบบ 16 Bit) BX : Base Register CX : Counting Register DX : Data Register ถ้าเป็น EAX, EBX, ECX, EDX จะเป็น Register สำหรับ 32 Bit 2. รีจิสเตอร์เซกเมนต์ (Segment Register) มีหน้าที่อ้างอิงตำแหน่งในหน่วยความจำเมื่อต้องการอ่าน หรือเขียนข้อมูล CS : Code Segment Register DS : Data Segment Register ES : Extra Segment Register SS : Stack segment Register 3. รีจิสเตอร์ Pointer และ Index (Pointer and Index Register) มีหน้าที่ในการชี้ตำแหน่งต่าง ๆ ในหน่วยความจำที่ต้องการติดต่อ BP : Base Pointers Register SP : Stack Pointer Register SI : Source Index Register DI : Destination Index Register 4. รีจิสเตอร์แฟลก (Flag Register) ทำหน้าที่เก็บสถานะการประมวลผลจากบางคำสั่ง เช่น CMP, TEST เป็นต้น ส่วน IP คือ Instruction Pointer Register
ตัวอย่างแสดงการใช้ AX, AH และ AL ผ่านคำสั่ง ADD
C:\MASM611\BIN>debug -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=119B ES=119B SS=119B CS=119B IP=0100 NV UP EI PL NZ NA PO NC 119B:0100 00C4 ADD AH,AL -r ax AX 0000 :1234 -a 119B:0100 add ah,al 119B:0102 -r AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=119B ES=119B SS=119B CS=119B IP=0100 NV UP EI PL NZ NA PO NC 119B:0100 00C4 ADD AH,AL -t =cs:100 AX=4634 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=119B ES=119B SS=119B CS=119B IP=0102 NV UP EI PL NZ NA PO NC 119B:0102 00C4 ADD AH,AL - |
ตัวอย่างแสดงการคูณ AX และ BX เก็บลง DX และ AX
C:\>debug -r ax AX 0000 :9001 -r bx BX 0000 :0002 -a 100 106F:0100 mul bx 106F:0102 -t =cs:100 AX=2002 BX=0002 CX=0000 DX=0001 SP=FFEE BP=0000 SI=0000 DI=0000 DS=106F ES=106F SS=106F CS=106F IP=0102 OV UP EI PL NZ NA PO CY 106F:0102 DB8B740903C6 ESC 19,[BP+DI+0974]TBYTE PTR [BP+DI+C603]SS:C603=E1C 0 - |
|
"Imagination is more important than knowledge" - Albert Einstein |