chuyên gia, tôi tự hỏi các intel x86 machineCode/assemblyCode chuyển đổi là singleSide hoặc cả haiSide?intel mã máy để lắp ráp mã câu hỏi
có nghĩa là: assemblyCode ---> machineCode và machineCode ---> assemblyCode đều khả dụng.
vì mã máy x86 có kích thước khác nhau (1-15 byte) và mã opcode khác nhau (1-3 byte), cách xác định một mã vạch là 1byte hoặc 2byte hoặc 3byte?
và tôi không bao giờ tìm thấy ví dụ về tiền tố của lệnh x86, nếu đây là tiền tố 1byte, cách xác định tiền tố là tiền tố hoặc opcode?
chắc chắn, assemblyCode ---> machineCode, danh tính của mnemonics + oprand [w/b] có thể xác định xem machineCode phản hồi là gì bằng cách ánh xạ MappingTable nhất định.
nhưng, khi quá trình này bị đảo ngược:
{bbbbbbbb, bbbbbbbb, bbbbbbbb, // instruction1 bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, // instruction2 bbbbbbbb, bbbbbbbb // instruction3 }
----> {bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb, bbbbbbbb}
tôi không biết đó là các bit có ý nghĩa hoặc byts để xác định bao lâu (kích thước) một instru ction là.
bất kỳ ai có thể cho tôi biết cách xác định điều đó không? (Kích thước của opcode, ví dụ tiền tố.) cảm ơn sự trợ giúp.
cảm ơn, tôi sẽ tra cứu nó. – Johnny
cảm ơn, tôi đã đọc: Bảng A-2. Bản đồ Opcode một byte: (00H - F7H) 0F LOCK (Tiền tố) Bảng A-3. Bản đồ mã hóa hai byte: 00H - 77H (Byte đầu tiên là 0FH) Bảng A-3. Bản đồ Opcode hai byte: 08H - 7FH (Byte đầu tiên là 0FH) Bảng A-3. Bản đồ Opcode hai byte: 80H - F7H (Byte đầu tiên là 0FH) Bảng A-3. Bản đồ Opcode hai byte: 88H - FFH (Byte đầu tiên là 0FH) – Johnny
Bảng A-4. Bản đồ mã hóa ba byte: 00H - F7H (Hai byte đầu tiên là 0F 38H) Bảng A-4. Bản đồ Opcode ba byte: 08H - FFH (Hai byte đầu tiên là 0F 38H) Bảng A-5. Bản đồ Opcode ba byte: 00H - F7H (Hai byte đầu tiên là 0F 3AH) Bảng A-5. Bản đồ Opcode ba byte: 08H - FFH (Hai byte đầu tiên là 0F 3AH) nó rất hữu ích, cảm ơn. – Johnny