DIV reg8/mem8 AL = AX div reg8/mem8 AH = AX mod reg8/mem
SHL AL,1 CF AL
CF AL 1 0 1 1 0 1 0 0 1 SHL CF AL 0 1 1 0 1 0 0 1 0 0
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.2. Gán trị
* Nhóm lệnh dịch chuyển số học và logic, quay vòng:
- Lệnh SHL (shift left): dịch trái 1 bit hay CL bit
CF AL 1 0 1 1 0 1 0 0 1 SHL CF AL 1 0 1 0 0 1 0 0 0 MOV CL,3 SHL AL,CL 0 0 0
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển dữ liệu:
+ Lệnh MOV: di chuyển dữ liệu
- Không ảnh hưởng đến các cờ
- Không thể chuyển trực tiếp dữ liệu giữa 2 ô nhớ
- Không thể chuyển giá trị trực tiếp vào thanh ghi đoạn - Không thể chuyển trực tiếp giữa 2 thanh ghi đoạn
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển dữ liệu:
+ Lệnh PUSH: cất nội dung trong thanh ghi vào stack + Lệnh POP: lấy nội dung từ stack
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển dữ liệu:
+ Lệnh LEA (Load Effective Addres): lấy địa chỉ của biến được lưu trong bộ nhớ
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển dữ liệu:
+ Lệnh IN: đọc dữ liệu từ thiết bị ngoại vi + Lệnh OUT: xuất dữ liệu ra thiết bị ngoại vi
IN AL, port8 IN AL, 61h IN AL, DX MOV DX,378h IN AL, DX OUT port8,AL OUT DX,AL OUT 61h,AL MOV DX,378h OUT DX,AL
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển điều khiển:
+ Lệnh JMP: nhảy không điều kiện
JMP Next …
…
Next:
+ Lệnh JA (Jump if Above): nhảy nếu lớn hơn (số không dấu)
+ Lệnh JB (Jump if Below): nhảy nếu nhỏ hơn (số không dấu)
+ Lệnh JE (Jump if Equal): nhảy nếu bằng nhau
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển điều khiển:
+ Lệnh JL (Jump if Less): nhảy nếu nhỏ hơn (số có dấu) + Lệnh JG (Jump if Greater): nhảy nếu lớn hơn (số có dấu)
+ Lệnh JC (Jump if Carry): nhảy nếu CF = 1
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển điều khiển:
+ Lệnh JLE (Jump if Less or Equal): nhảy nếu nhỏ hơn hay bằng (số có dấu)
+ Lệnh JGE (Jump if Greater or Equal): nhảy nếu lớn hơn hay bằng (số có dấu)
+ Lệnh JAE (Jump if Above or Equal): nhảy nếu lớn hơn hay bằng (số không dấu)
+ Lệnh JBE (Jump if Below or Equal): nhảy nếu nhỏ hơn hay bằng (số không dấu)
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển điều khiển:
+ Sử dụng các lệnh nhảy có điều kiện giống như lệnh JMP nhưng chỉ cho phép phạm vi tối đa 256 byte.
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển điều khiển:
+ Lệnh LOOP: lệnh tạo vòng lặp LOOP next CX = CX - 1 Nếu CX <> 0 thì JMP next CX = số lần lặp CX = CX - 1 Nếu Cx<> 0 thì lặp
2.3. T P L NH C A B X LÝẬ Ệ Ủ Ộ Ử
CHƯƠNG 2: KI N TRÚC MÁY TÍNH Ế
VONNEUMANN
2.3.3. Đi u khi nề ể
* Nhóm lệnh chuyển điều khiển:
+ Lệnh CALL: gọi chương trình con
+ Lệnh RET: trở về chương trình chính khi kết thúc chương trình con