Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Chào Mừng bạn đến với diễn đàn của lớp 32CĐ Cơ - Điện Tử ĐHCN Việt-Hung
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Chào Mừng bạn đến với diễn đàn của lớp 32CĐ Cơ - Điện Tử ĐHCN Việt-Hung
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung

Sân chơi dành cho sinh viên giao lưu học tập
 
Trang ChínhPortalGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập

Share | 
 

 2.3 NHÓM LỆNH SỐ HỌC

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Admin
vip
vip
Admin

Tổng số bài gửi : 366
vi phạm : 0
Join date : 15/04/2010
Age : 33
Đến từ : Bình Lục-Hà Nam

2.3 NHÓM LỆNH SỐ HỌC _
Bài gửiTiêu đề: 2.3 NHÓM LỆNH SỐ HỌC   2.3 NHÓM LỆNH SỐ HỌC EmptySat Dec 25, 2010 3:59 pm

Để theo dõi các lệnh trong phần này, các bạn xem lại phần: các ô nhớ có chức năng đặc biệt và chú ý phần 1.1.11 Thanh ghi trạng thái chương trình PSW
Phần phụ chú: ảnh hưởng của phép cộng và trừ lên thanh trạng thái PSW.
2.3 NHÓM LỆNH SỐ HỌC Cdt_044 Cờ nhớ C:

2.3 NHÓM LỆNH SỐ HỌC Cdt_002 C=1 nếu phép toán cộng xảy ra tràn hoặc phép trừ có mượn
2.3 NHÓM LỆNH SỐ HỌC Cdt_002 C=0 nếu phép toán cộng không tràn hoặc phép trừ không có mượn.
Phép cộng xảy ra tràn là phép cộng mà kết quả lớn hơn 255 (hay FFH hay 11111111b), lúc này C=1
Ví dụ: phép cộng không tràn
Số cộng
38H560 0 1 1 1 0 0 0 b
Số cộng
+3AH580 0 1 1 1 0 1 0 b
Kết quả72H1140 1 1 1 0 0 1 0 b
Cờ nhớ C0
0



Phép cộng tràn
Số cộng
6CH1080 1 1 0 1 1 0 0 b
Số cộng
+9FH1591 0 0 1 1 1 1 1 b
Kết quả10BH2671 0 0 0 0 1 0 1 1 b
Cờ nhớ C1
1
Phần được tô màu xanh là 8 bit của thanh ghi A sau khi kết quả được thực hiện, phần màu đỏ trong kết quả là giá trị bị tràn, giá trị này không lưu ở thanh ghi A mà lưu ở thanh ghi PSW, tại cờ C


Số trừ
9FH159 1 0 0 1 1 1 1 1 b
Số bị trừ
-6CH108 0 1 1 0 1 1 0 0 b
Kết quả33H510 0 1 1 0 0 1 1 b
Cờ nhớ C0
0
Số trừ
6CH1080 1 1 0 1 1 0 0 b
Số bị trừ
-9FH1591 0 0 1 1 1 1 1 b
Kết quảCDH-51 1 1 0 0 1 1 0 1 b
Cờ nhớ C1
1 -phép trừ trên có số muợn



2.3.1. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu trên thanh ghi Rn:

  • Cú pháp: Add A,Rn
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu trên thanh ghi Rn, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    Mov A,#20H
    Mov R1,#08H
    Add A,R1

    Kết quả : A có giá trị là 28H
    R1 vẫn giữ nguyên giá trị là 08H
    Cờ C = 0
    Vidu2:
    Mov A,#0E9H
    Mov R6,#0BAH
    Add A,R6

    Kết quả : A = #0A3h
    R6 = #0BAh
    Cờ C = 1

2.3.2. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu ở ô nhớ có địa chỉ direct:

  • Cú pháp: Add A,direct
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu trên ô nhớ có địa chỉ direct, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    Mov 50h,#20H
    Mov A,#0E8H
    Add A,50H

    Kết quả : A = #08H
    50H = #20H
    C = 1


2.3.3. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ gián tiếp:

  • Cú pháp: Add A,@Ri
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    AC = 1 ;cờ C đang mang giá trị 1
    Mov 50H,#60H
    Mov R2,#50H
    Mov A,#01H
    Add A,@R2
    Kết quả : A = #61H
    R2 = #50H
    C = 0 ;cờ C mang giá trị 0

2.3.4. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu xác định:

  • Cú pháp: Add A,#data
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với một giá trị xác định, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    Mov A,#05h
    Add A,#06h

    Kết quả : A = #0Bh
    C = 0

2.3.5. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu trên thanh ghi Rn có số nhớ ở cờ C:

  • Cú pháp: AddC A,Rn
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu trên thanh ghi Rn và cộng thêm giá trị của số nhớ trên cờ C, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ: C = 1
    Mov A,#08h
    Mov R1,#10h
    Addc A,R1

    Kết quả : A = #19h ;cộng cả cờ C
    R1 = #10h
    C =0

2.3.6. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu ở ô nhớ có địa chỉ direct và giá trị số nhớ ở cờ C:

  • Cú pháp: AddC A,direct
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu của ô nhớ có địa chỉ direct và cộng thêm giá trị của số nhớ trên cờ C , sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ: C = 0
    Mov A,#0A5h
    Mov 10h,#96h
    Addc A,10h

    Kết quả : A = #3Bh
    10h = #96h
    C =1

2.3.7. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ gián tiếp và số nhớ ở cờ C:

  • Cú pháp: AddC A,@Ri
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri và cộng thêm giá trị của số nhớ trên cờ C, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    C = 1
    Mov A,#05h
    Mov 50h,#10h
    Mov R2,#50h
    Addc a,@R2

    Kết quả : A = #16h
    C = 0

2.3.8. Lệnh cộng dữ liệu trên thanh ghi A với dữ liệu xác định và số nhớ ở cờ C:

  • Cú pháp: AddC A,#data
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Cộng giá trị dữ liệu trên thanh ghi A với giá trị xác định và cộng thêm giá trị của số nhớ trên cờ C, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    C = 1
    Mov A,#05h
    Addc A,#16h

    Kết quả : A = #1Ch
    C = 0

2.3.9. Lệnh trừ dữ liệu trên thanh ghi A với dữ liệu trên thanh ghi Rn và số nhớ ở cờ C:

  • Cú pháp: SubB A,Rn
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Trừ giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu trên thanh ghi Rn và trừ cho giá trị nhớ trên cờ C, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ: C = 1
    Mov A,#0E5h
    Mov R3,#9Fh
    Subb A,R3

    kết quả : A = 45h
    C = 0

2.3.10. Lệnh trừ dữ liệu trên thanh ghi A với dữ liệu ở ô nhớ có địa chỉ direct và số nhớ ở cờ C:

  • Cú pháp: SubB A,direct
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Trừ giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu của ô nhớ có địa chỉ direct và trừ cho giá trị nhớ trên cờ C , sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    C = 0
    Mov A,#0E5h
    Mov 05h,#9Fh
    Subb A,05h
    kết quả : A = 46h
    C = 0

2.3.11. Lệnh trừ dữ liệu trên thanh ghi A với dữ liệu của ô nhớ có địa chỉ gián tiếp và số nhớ ở cờ C:

  • Cú pháp: SubB A,@Ri
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Trừ giá trị dữ liệu trên thanh ghi A với giá trị dữ liệu của ô nhớ có địa chỉ bằng giá trị của thanh ghi Ri và trừ cho giá trị nhớ trên cờ C, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    C = 1
    Mov A,#0E5h
    Mov 4Fh,#50h
    Mov R3,#4Fh
    Subb A,@R3

    kết quả : A = 94h
    C = 0

2.3.12. Lệnh trừ dữ liệu trên thanh ghi A với dữ liệu xác định và số nhớ ở cờ C:

  • Cú pháp: SubB A,#data
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Trừ giá trị dữ liệu trên thanh ghi A với giá trị xác định và trừ thêm giá trị nhớ trên cờ C, sau khi thực hiện lệnh kết quả được lưu ở thanh ghi A. Lệnh này có ảnh hưởng đến thanh thanh trạng thái PSW
  • Ví dụ:
    C = 0
    Mov A,#05h
    Subb A,#4Fh

    kết quả : A = 0B6h
    C = 1

2.3.13.Lệnh tăng giá trị dữ liệu trên thanh ghi A lên 1 đơn vị:

  • Cú pháp: Inc A
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Tăng giá trị dữ liệu lưu giữ trên thanh ghi A lên 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
    Ví dụ: Mov A,#05h
    Inc A

    Kết quả : A = #06h

2.3.14.Lệnh tăng giá trị dữ liệu trên thanh ghi Rn lên 1 đơn vị:

  • Cú pháp: Inc Rn
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Tăng giá trị dữ liệu lưu giữ trên thanh ghi Rn lên 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov R7,#0Fh
    Inc R7

    Kết quả : R7 = #10h

2.3.15.Lệnh tăng giá trị dữ liệu ở ô nhớ có địa chỉ direct lên 1 đơn vị:

  • Cú pháp: Inc direct
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 2 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Tăng giá trị dữ liệu ở một ô nhớ có địa chỉ direct lên 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov 50h,#0FFh
    Inc 50h

    Kết quả : 50h = #00

2.3.16.Lệnh tăng giá trị dữ liệu ở ô nhớ có địa chỉ gián tiếp lên 1 đơn vị:

  • Cú pháp: Inc @Ri
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Tăng giá trị dữ liệu ở ô nhớ có địa chỉ bằng giá trị dữ liệu trên Ri lên 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov 0Fh,#05h
    Mov R0,#0Fh
    Inc @R0

    Kết quả : R0 = #06h
    0Fh = #05h

2.3.17.Lệnh tăng giá trị của con trỏ dữ liệu DPTR lên 1 đơn vị:

  • Cú pháp: Inc DPTR
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 2 chu kì máy
  • Công dụng: Tăng giá trị dữ liệu của thanh ghi con trỏ dữ liệu DPTR lên 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov DPTR,#5Fh
    Inc DPTR

    Kết quả : DPTR = #060h

2.3.18.Lệnh giảm giá trị dữ liệu trên thanh ghi A xuống 1 đơn vị:

  • Cú pháp: Dec A
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Giảm giá trị dữ liệu lưu giữ trên thanh ghi A xuống 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov A,#05h
    Dec A

    Kết quả : A = #04h

2.3.19.Lệnh giảm giá trị dữ liệu trên thanh ghi Rn xuống 1 đơn vị:

  • Cú pháp: Dec Rn
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Giảm giá trị dữ liệu lưu giữ trên thanh ghi Rn xuống 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov R6,#0Fh
    Dec R6

    Kết quả : R6 = #0Eh

2.3.20.Lệnh giảm giá trị dữ liệu ở ô nhớ có địa chỉ direct xuống 1 đơn vị:

  • Cú pháp: Dec direct
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Giảm giá trị dữ liệu ở ô nhớ có địa chỉ direct xuống 1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov 7Fh,#0
    Dec 7Fh

    Kết quả : 7Fh = #0FFh

2.3.21.Lệnh giảm giá trị dữ liệu ở ô nhớ có địa chỉ gián tiếp xuống 1 đơn vị:

  • Cú pháp: Dec @Ri
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 1 chu kì máy
  • Công dụng: Giảm giá trị dữ liệu ở ô nhớ có địa chỉ bằng giá trị dữ liệu trên Ri xuống1 đơn vị, không ảnh hưởng đến các cờ nhớ trên PSW
  • Ví dụ:
    Mov 60h,#05h
    Mov R1,#60h
    Dec @R1

    Kết quả : R1 = #04h
    60h = #05h

2.3.22.Lệnh nhân thanh ghi A với thanh ghi B:

  • Cú pháp: Mul AB
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 4 chu kì máy
  • Công dụng: Nhân hai dữ liệu là số nguyên không dấu ở thanh ghi A với thanh ghi B, kết quả là một dữ liệu 16 bit. Byte thấp của kết quả lưu ở thanh ghi A và byte cao của kết quả lưu ở thanh ghi B. Nếu tích số lớn hơn 255(0FFH), cờ tràn OV ở thanh trạng thái PSW được thiết lập lên 1, ngược lại nếu tích số nhỏ hơn 255(0FFH),cờ tràn OV được thiết lấp về 0. Cờ nhớ C luôn ở giá trị 0.
  • Ví dụ: Mov A,#0B9h
    Mov B,#F7h
    Mul AB

    Kết quả : A = #7Fh
    B = #0B2h

2.3.23.Lệnh chia thanh ghi A với thanh ghi B:

  • Cú pháp: Div AB
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 4 chu kì máy
  • Công dụng: Chia hai dữ liệu là số nguyên không dấu ở thanh ghi A với thanh ghi B, dữ liệu ở thanh ghi A là số chia còn ở thanh ghi B là số bị chia, kết quả là một dữ liệu 8 bit được lưu ở thanh ghi A.số dư lưu trữ trong thanh ghi B Cờ nhớ C luôn ở giá trị 0.
    Cờ tràn OV được thiết lập giá trị 1 khi thanh ghi B mang giá trị là 00H-phép chia không thể thực hiện.
  • Ví dụ: Mov A,#50h
    Mov B,#10h
    DIV AB

    Kết quả : A = #5h
    B = #0h

2.3.24.Lệnh hiệu chỉnh thập phân nội dung của thanh ghi A đối với phép cộng:

  • Cú pháp: DA A
  • Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte
  • Thời gian thực hiện: 4 chu kì máy
  • Công dụng: hiệu chỉnh dữ liệu là giá trị lưu giữ ở thanh ghi A từ số Hex (số nhị phân) thành số BCD (số thập phân viết dưới dạng nhị phân). Lí do có lệnh hiệu chỉnh này vì khi cộng hai giá trị là số BCD bằng các lệnh cộng, vi điều khiển chỉ hiểu hai số cộng là số nhị phân bình thường, kết quả sau lệnh cộng là một số nhị phân bình thường, không phải là một số BCD, vì vậy kết quả cần được hiệu chỉnh để dữ liệu cuối là một số BCD. Khi thực hiện lệnh, cờ nhớ C được xác lập lên 1 nếu phép cộng có kết quả vượt qua 99(số BCD). Kết quả cuối cùng, số BCD có hàng đơn vị nằm ở 4 bit thấp trên thanh ghi A, hàng chục ở 4 bit cao của thanh ghi A, hàng trăm là 1 nếu cờ C mang giá trị 1, là 0 nếu cờ C mang giá trị 0.
  • Ví dụ 1: Mov A,#10h
    DA A
    Kết quả : A = #10h

  • Ví dụ 2: Mov A,#0Eh
    DA A
    Kết quả : A = #14h
Về Đầu Trang Go down
http://loveanhthao.co.cc
 

2.3 NHÓM LỆNH SỐ HỌC

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung :: Cơ - Điện Tử :: VI ĐIỀU KHIỂN ỨNG DỤNG-
Chuyển đến 
Đăng NhậpNhanh
.:Đăngkí:. | .: Quên mật khẩu:.