Khác biệt giữa bản sửa đổi của “Kiến trúc Universal”
Nội dung được xóa Nội dung được thêm vào
Không có tóm lược sửa đổi |
|||
Dòng 79:
# POPCNT
* Di chuyển dữ liệu
# MOV Di chuyển từ [[thanh ghi điều khiển]] <=> thanh ghi đa dụng
# CMOVcc
# LDF/STF tải/lưu thanh ghi uflag
# XCHG Hoán chuyển 2 toán hạng
# CALL gọi hàm, thủ tục
#
#
# JIcc nhảy có điều kiện
# JR nhảy tới [R]
# SYSCALL
# SYSRET
▲# IDLE Nghỉ,
=== Bảng mã opcode ===
Các toán tử của vi lệnh là thanh ghi, tuy nhiên chỉ được một trong 2 hoặc 3.
Hàng 137 ⟶ 136:
| 23 || CMP || cmp %rd,%rs,%rt || 00000000 ---dddddddssssssssttttttt || rd = rs cmp rt
|-
| 30 || JI ||
|-
| 31 || JIcc ||
|-
| 32 || JR || jmp (%rr) || 10000101 -rrrrrrr || Nhảy vô điều kiện tới thanh ghi (%rr),opcode 2 bytes
Hàng 145 ⟶ 144:
| 33 || JRcc || Jcc %rd,(%rr) || 10000111 cccdddddddrrrrrrr 8 bit offset || Nhảy có điều kiện tới (%rr)+$offset
|-
| 60 || L{B,W,D,Q} || lb 0xoff_t(%rs),%rd || 11000000 tt sssssss ddddddd + 8 bit off_t || tải 1,2,4,8 byte bộ nhớ (%rs)+offset vào thanh ghi %rd
|-
| 62 || LQD || lqd 0xoffset(%rs),%rd || 11000001 ---sssssssddddddd + 7 bit off_t || tải 16 bytes bộ nhớ (%rs)+offset vào thanh ghi %rd
|-
| 63 || S{B,W,D,Q} || Ls 0xoff_t(%rs),%rd || 11111111 ---sssssssddddddd + 7 bit off_t || Lưu 1,2,3,4,8 bytes từ %rd vào (%rs)+offset
|-
| 64 || SQD || sqd 0xoff_t(%rs),%rd || 11111111 ---sssssssddddddd + 7 bit off_t || Lưu 16 bytes từ %rd vào (%rs)+offset
|-
| 65 || LIR || li $imm16,%rd || 11111111 -ddddddd + imm16 || Lưu imm16 vào %rd
|-
| 66 || ICALL || icall $imm24 || 11111111 + imm24 || Gọi tới địa chỉ tuơng đối 24 bit
|-
| 67 || RCALL || rcall %rr || 11111111 + -ddddddd || Gọi tới địa chỉ tuyệt đối trong (%rr),opcode 2 bytes
|-
| 68 || RET || ret || 11111111 1-------- || trở về từ ICALL hoặc RCALL,ret hỗ trợ 2 mode trả về,opcode 2 bytes
|-
| 69 || SYSCALL || syscall || 11111111 111111111 || gọi đến hàm hệ thống,opcode 2 bytes
|-
| 70 || SYSRET || sysret || 11111111111111111 || Trở về
|}
|