+ Kí hiệu lệnh
+ Thời gian thực hiện lệnh + Cách sử dụng lệnh
Lệnh Mục đích
Mnemonic Tên
ADD Add Cộng nguồn Avào B và cất kết quả vào đích
SUB Subtract Trừ nguồn A vơi B và cất kết quả vào đích
MUL Multiply Nhân nguồn A với B và cất kết quả vào đích
DIV Divide Chia nguồn A cho B và cất kết quả vào đích
và thanh ghi toán
DDV Double Divide Chia nội dung thanh ghi toán với nguồn và cất
kết quả vào đích và thanh ghi toán
NEG Negate Đổi dấu của giá trị nguồn và cất vào đích
CLR Clear Xoá tất cả các bit của từ về 0
TOD Convert to BCD Chuyển số nguyên sang dang BCD
FRD Convert from BCD Chuyển giá trị dạng BCD sang số nguyên
DCD Decode 4 to 1 of 16 Chuyển giá trị Hexa 4 Bit sang số 1 của 16
SQR Square Root Tính bình phơng nguồn và cho kết quả vào
đích
SCL Scale Data Nhân nguồn vơi tỷ lệ cho trớc, cộng với giá trị
False True False
-32768 Low Limit High Limit +32767
False True False
-32768 High Limit Low Limit +32767
offset và cất kết quả vào đích.
III.3.4.1.Nét cơ bản về các lệnh toán học
Các lệnh này thực hiện liên quan với 4 phép toán. Phần chính của lệnh gồm 2 giá trị đầu vào, thực hiện chức năng tính toán đã cho và đa ra kết quả trong vị trí vùng nhớ cho trớc.
- Các thông số của lệnh:
+ Source là địa chỉ của giá trị để thực hiện hoạt động tính toán, logic, hoặc chuyển dời. Nó có thể là địa chỉ từ hoặc hằng. Lệnh nào có 2 toán tử thì không nhận hằng trong cả hai toán tử đó.
+ Destination là địa chỉ của kết quả thực hiện. Số nguyên có dấu đợc cất dới dạng bù 2 và sử dụng cho cả 2 thông số nguồn và đích.
- Sử dụng địa chỉ chỉ số: Có tuỳ chọn để sử dụng địa chỉ chỉ số cho các thông số lệnh mô tả địa chỉ từ.
- Sử dụng các Bit trạng thái tính toán: Các bit trạng thái tính toán nằm ở word 0, bit 0 - 3 trong tệp trạng thái. Sau khi thực hiện lệnh, các Bit trạng thái trong tệp trạng thái đợc ghi vào.
Với Bit này ý nghĩa
S: 0/0 Carry (C) Đặt (1), nếu carry tạo ra, ngợc lại nó bị xoá (0)
S: 0/1 Overflow (V) Chỉ ra rằng kết quả hiện tại của lệnh không phù hợp với đích đã chọn.
S: 0/2 Zero (Z) Chỉ ra kết quả 0 cho lệnh toán Mov, hoặc Logic.
S: 0/3 Sign (S) Chỉ ra kết quả âm (nhỏ hơn 0) sau lệnh toán, Mov,
Logic. - Overlow trap bit, S5:5/0
+ Bit lỗi S: 5/0 đợc đặt, khi phát hiện ra overflow do tính toán hoặc do chia cho 0. Nếu bit này đặt, khi thực hiện ở trạng thái END hoặc ở lệnh Temporary End (TND), hoặc lệnh REF, lỗi nghiêm trọng (mã 0020) xuất hiện, thiết bị điều khiển bị treo.
+ Trong các ứng dụng khi tính toán có Overflow hoặc chia cho 0 xảy ra, có thể tránh đợc lỗi cho thiết bị bằng cách sử dụng lệnh Unlatch (OTU) với địa chỉ S:5/0 trong chơng trình. Bậc thang này cần nằm giữa điểm Overflow và trạng thái END hoặc TND.
- Chuyển đổi thanh ghi toán: S:13 và S:14
+ Từ trạng thái S:13 bao gồm từ giá trị thấp của giá trị 32 Bit trong lệnh DIV và nó chứa 4 số đầu BCD của lệnh Conver from BCD (FRD) và Convert to BCD (TOD).
+ Từ trạng thái S: 14 chứa từ giá trị cao của giá trị 32 Bit trong lệnh MUL, và DDV. Nó chứa thơng cha làm tròn của lệnh DIV và DDV. Nó cũng chứa digit cao nhất (digit 5) của lệnh TOD và FRD.
Lệnh Add (ADD)
Lệnh ra
Sử dụng lệnh cộng ADD để cộng 1 giá trị nguồn A vào giá trị nguồn B và đặt kết quả vào đích (Dest). Nguồn A và B là từ hoặc hằng.
Các bit trạng thái tính toán
Bit Nội dung
S: 0/0 Carry (C) Đặt, nếu có carry, ngợc lại xóa.
S: 0/1 Overflow (V) Đặt, nếu có Overflow ở đích, ngợc lại xoá. Khi Overflow cờ lỗi cũng đặt. Giá trị từ -32768 tới 32767 đặt trong đích. Nừu S:2/14 (bit phát hiện Overflow) là đặt, thì trong đích là số dơng, phần Overflow bị cắt.
S: 0/2 Zero (Z) Đặt, nếu kết quả là 0, ngợc lại xoá. S: 0/3 Sign (S) Đặt, nếu kết quả là âm, ngợc lại xoá.
Lệnh Subtract (SUB)
Lệnh ra
Sử dụng lệnh trừ SUB để trừ giá trị nguồn B từ nguồn Avà đặt kết quả vào trong đích (Dest). Nguồn A,B là từ hoặc hằng.
Các bit trạng thái tính toán
Bit Nội dung
S: 0/0 Cary (C) Đặt, nếu có carry, ngợc lại xóa.
S: 0/1 Overflow (V) Đặt, nếu có Underflow ở đích, ngợc lại xóa. Khi Underflow, cờ lỗi cũng đặt. Giá trị từ -32767 đặt trong đích. Nếu S:2/14 (Bit phát hiện Overflow) là đặt, thì trong đích là số dơng phần Overflow bị cắt.
S: 0/2 Zero (Z) Đặt, nếu kết quả là 0, ngợc lại xoá S: 0/3 Sign (S) Đặt, nếu kết quả là âm, ngợc lại xoá
Lệnh Multiply (MUL)
Lệnh ra
Sử dụng lệnh nhân MUL để nhân nguồn Avới nguồn B và đặt kết quả vào đích. Nguồn A và B là từ hoặc hằng. Nếu kết quả lớn hơn 32767 hoặc nhỏ hơn -32767 (16 bit) thì kết quả đợc cất vào thanh ghi toán S:13 và S:14.
Các bit trạng thái tính toán
Bit Nội dung
S:0/0 Carry (C) Luôn luôn xóa
S:0/1 Overflow (V) Đặt, nếu có Overflow ở đích, ngợc lại xóa. Khi Overfow cờ lỗi bật. Giá trị từ -32768 hoặc 32767 đặt trong đích. Nếu S:2/14 (bit phát hiện Overflow) là đặt, thì trong đích có giá trị dơng, phần Overflow bị cắt.
S:0/2 Zero (Z) Đặt, nếu kết quả là 0, ngợc lại xoá. S:0/3 Sign (S) Đặt, nếu kết quả là âm, ngợc lại xoá.
Thanh ghi toán: Chứa kết quả số nguyên có dấu 32 Bit của phép nhân. Kết quả này có hiệu lực ở Overflow.
Lệnh Divide (DIV)
Lệnh ra
Sử dụng lệnh chia DIV để chia nguồn A với nguồn B và đặt thơng cha làm tròn vào đích. Nếu phần d lớn hơn hoặc bằng 0.5, đích sẽ làm tròn nó.
Các Bit trạng thái tính toán
S: 0/0 Carry (C) Luôn luôn xoá
S: 0/1 Overflow (V) Đặt, nếu chia cho 0 hoặc có Overflow, ngợc lại xoá. Khi Overflow cờ lỗi đặt giá trị tới 32767 đặt trong đích. Nếu S:2/14 (bit phát hiện Overflow) là đặt thì trong đích có giá trị dơng phần Overflow bị cắt.
S: 0/2 Zero (Z) Đặt, nếu kết quả là 0, ngợc lại xoá, không xác định nếu Overflow là đặt.
S: 0/3 Sign (S) Đặt, nếu kết quả là âm, ngợc lại xoá, không xác định nếu Overflow là đặt.
Thanh ghi toán: Thơng cha làm tròn đặt vào từ cao, phần d đặt vào từ thấp. Lệnh Double Divide (DDV)
Lệnh ra
Nội dung của thanh ghi toán chia cho giá trị nguồn và đặt thơng đã làm tròn vào đích. Nếu phân d lớn hơn 0.5, đích sẽ làm tròn nó. Thơng cha làm tròn đợc cất vào từ giá trị cao của thanh ghi toán. Phần d đợc cất vào từ giá trị thấp của thanh ghi toán.
Các bit trạng thái tính toán
Bit Nội dung
S: 0/0 Carry (C) Luôn luôn xoá
S: 0/1 Overflow (V) Đặt, nếu chia cho 0 hoặc kết quả lớn hơn 32767 hoặc nhỏ hơn -32768, ngợc lại xoá. Khi Overflow, cờ lỗi đặt, giá trị 32767 đặt vào đích.
S: 0/2 Zero (Z) Đặt, nếu kết quả là 0, ngợc lại xoá.
S: 0/3 Sign (S) Đặt, nếu kết quả là âm, ngợc lại xoá, không xác định nếu Overflow là đặt.
Thanh ghi toán: Ban đầu chứa số chia của phép tính. Trong quá trình thực hiện lệnh thơng cha làm tròn đặt vào từ cao, phần d đặt vào từ thấp của thanh ghi toán
Lệnh ra
Sử dụng lệnh xoá CLK để đặt đích về 0. Tất cả các Bit đều bị xoá. Các bit trạng thái tính toán
Bit Nội dung
S: 0/0 Carry (C) Luôn luôn xoá
S: 0/1 Overflow (V) Luôn luôn xoá
S: 0/2 Zero (Z) Luôn luôn xoá
S: 0/3 Sign (S) Luôn luôn xoá
Thanh ghi toán: nội dung khôn thay đổi Lệnh Convert to BCD (TOD)
Lệnh ra
Sử dụng lệnh này để chuyển đổi số nguyên 16 bit sang giá trị BCD.
Nếu giá trị số nguyên là số âm, dấu bị bỏ qua và việc chuyển đổi tiến hành nh với số dơng.
Các bit trạng thái tính toán
Bit Nội dung
S: 0/0 Carry (C) Luôn luôn xoá
S: 0/1 Overflow (V) Dặt, nếu kết quả BCD lớn hơn 9999. Overflow
gây kết quả trong lỗi.
S: 0/2 Zero (Z) Đăt, nếu giá trị đích là 0
S: 0/3 Sign (S) Đặt, nếu nguồn là âm; ngợc lại xoá.
Thanh ghi toán: Chứa kết quả BCD 5 digital. Kết quả này có hiệu lực ở Overflow.
Lệnh ra
Sử dụng lệnh này để chuyển đổi giá trị BCD sang số nguyên. Các Bit trọng thái tính toán
Bit Nội dung
S: 0/0 Carry (C) Luôn luôn xoá
S: 0/1 Overflow (V) Đặt, nếu nguồn chứa giá trị không phải BCD hoặc giá trị đã chuyển đổi lớn hơn 32767, ngợc lại xoá. Overflow gây kết quả tron lỗi.
S: 0/2 Zero (Z) Đặt, nếu giá trị đích là 0.
S: 0/3 Sign (S) Luôn luôn xoá.
Thanh ghi toán: Sử dụng nh nguồn để chuyển đổi toàn bộ dãy số của thanh ghi. Lệnh Decode 4 to 1 of (DCD)
Lệnh ra
Khi thang là True, lệnh này bật đích là 1. Bit đặc biệt đợc bật lên 1 phụ thuộc vào giá trị 4 bit đầu tiên của từ nguồn.
Sử dụng lệnh này để giải mã số liệu cho các ứng dụng nh công tắc quay vòng, keypad, và dải công tắc.
Vào các thông số
- Source là địa chỉ chứa thông tin giải mã bit. Chỉ 4 bit đầu (0-3) đợc sử dụng trong lệnh DCD. Các bit còn lại có thể sử dụng cho tính toán khác. Thay đổi giá trị 4 bit đầu của từ này để tách ra bit 1 của đích.
- Destination là địa của từ giải mã. Chỉ 1 bit của từ này là bật lên 1, phụ thuộc vào giá trị nguồn.
Các bit trạng thái tính toán: Không sử dụng. Thanh ghi toán: Nội dung không thay đổi.
Lệnh ra
Sử dụng lệnh SQR để lấy căn bậc hai giá trị tuyệt đối của nguồn và kết quả đợc làm tròn rồi đặt vào đích.
Lệnh tính toán căn bậc 2 của số âm không có Overflow hoặc lỗi. Trong các ứng dụng giá trị nguồn có thể là âm, hãy sử dụng lệnh so sánh để kiểm tra giá trị nguồn nhằm xác định sự hiệu lực của đích
Các bit trạng thái tính toán
Bit Nội dung
S: 0/0 Carry (C) Dành riêng.
S: 0/1 Overflow (V) Luôn luôn xoá.
S: 0/2 Zero (Z) Đặt nếu giá trị đích là 0.
S: 0/3 Sign (S) Luôn luôn xoá.
Thanh ghi toán: Nội dung không thay đổi. Lệnh Scale Data (SLC)
Lệnh ra
Giá trị nguồn nhân với giá trị tỷ lệ Rate, kết quả đợc làm tròn và cộng với offset rồi đặt vào đích.
Bất cứ khi nào có Underflow hoặc Overflow trong đích, thì cờ lỗi bit S:5/0 cần xoá. Điều này phải thực hiện trớc khi kết thúc vòng quét để tránh lỗi lớn 0020 xảy ra. Lệnh này có thể có Overflow trớc khi offset đợc cộng vào.
Các thông số: có giá trị -32768 tới 32767 +Source từ hoặc hằng
+Rate: Từ hoặc hằng, âm hoặc dơng. +Offset: Hằng hoặc từ
Bit Nội dung
S: 0/0 Carry (C) Dành riêng
S: 0/1 Overflow (V) Đặt, nếu có Overflow, ngợc lại bị xóa. Khi Overflow, bit lỗi S:5/0 cũng đặt và giá trị -32768 hoặc 32767 đợc đặt vào đích. Hãy kiểm tra Overflow trớc và sau khi dùng offset.
S: 0/2 Zero (Z) Đặt, khi giá trị đích bằng 0
S: 0/3 Sign (S) Đặt, nếu giá trị đích là âm. Ngợc lại xoá. Thanh ghi toán: Nội dung không thay đổi
III.3.5.Các lệnh move và logic