4.2.2.4 Nhóm lệnh so sánh số nguyên 16 bits
Tất cả các lệnh so sánh sốnguyên 16 bits đều nằm trong từ thấp của hai thanh ghi ACCU1 và ACCU2, và đều tác động vào thanh ghi trạng thái như sau:
BR CC1 CC0 OV OS OR STA RLO FC
- x x 0 - 0 x x 1
Trong đó hai bits CC1 và CC0 thay đổi theo quy tắc như bảng 4.7.
Bảng 4.7. Quy tắc thay đổi của CC0 và CC1 với nhóm lệnh số nguyên 16 bits
CC1 CC0 Ý nghĩa
0 0 Từ thấp ACCU2 = Từ thấp ACCU1
0 1 Từ thấp ACCU2 < Từ thấp ACCU1
1 0 Từ thấp ACCU2 > Từ thấp ACCU1
* Lệnh so sánh bằng nhau hai số nguyên 16 bits
Cú pháp ==I
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2. Nếu chúng giống nhau thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh không bằng nhau hai số nguyên 16 bits
Cú pháp <>I
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2. Nếu chúng khác nhau thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh lớn hơn hai số nguyên 16 bits
Cú pháp >I
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong từ thấp của ACCU2 lớn hơn ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh nhỏhơn hai số nguyên 16 bits
Cú pháp <I
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong từ thấp của ACCU2 nhỏhơn ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh lớn hơn hoặc bằng hai số nguyên 16 bits
Cú pháp >=I
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong từ thấp của ACCU2 lớn hơn hoặc bằng ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh nhỏhơn hoặc bằng hai số nguyên 16 bits
Cú pháp <=I
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong từ thấp của ACCU2 nhỏhơn hoặc bằng ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
4.2.2.5. Nhóm lệnh so sánh số nguyên 32 bits
Tất cả các lệnh so sánh số nguyên 32 bits của hai thanh ghi ACCU1 và ACCU2 đều tác động vào thanh ghi trạng thái như sau:
BR CC1 CC0 OV OS OR STA RLO FC
- x x 0 - 0 x x 1
Trong đó hai bits CC1 và CC0 thay đổi theo quy tắc như bảng 4.8.
Bảng 4.8. Quy tắc thay đổi của CC0 và CC1 với nhóm lệnh số nguyên 32 bits
CC1 CC0 Ý nghĩa
0 0 ACCU2 = ACCU1
0 1 ACCU2 < ACCU1
1 0 ACCU2 > ACCU1
* Lệnh so sánh bằng nhau hai số nguyên 32 bits
Cú pháp ==D
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu chúng giống nhau thì RLO = 1, ngược lại thì RLO = 0.
Ví dụ: Viết chương trình báo đèn Q1.0 sáng nếu số ngun trong ơ nhớ MD10 bằng 100.
L 100 ==D
= Q1.0
* Lệnh so sánh không bằng nhau hai số nguyên 32 bits
Cú pháp <>D
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu chúng khác nhau thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh lớn hơn hai số nguyên 32 bits
Cú pháp >D
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong ACCU2 lớn hơn ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh nhỏhơn hai số nguyên 32 bits
Cú pháp <D
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 32 bits trong thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong ACCU2 nhỏhơn ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh lớn hơn hoặc bằng hai số nguyên 32 bits
Cú pháp >=D
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong ACCU2 lớn hơn hoặc bằng ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh nhỏ hơn hoặc bằng hai số nguyên 32 bits
Cú pháp <=D
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu số nguyên trong ACCU2 nhỏhơn hoặc bằng ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
4.2.2.6. Nhóm lệnh so sánh số thực 32 bits
Tất cả các lệnh so sánh số thực 32 bits của hai thanh ghi ACCU1 và ACCU2 đều tác động vào thanh ghi trạng thái như sau:
BR CC1 CC0 OV OS OR STA RLO FC
- x x x x 0 x x 1
Bảng 4.9. Quy tắc thay đổi của CC0 và CC1 với nhóm lệnh số thực
CC1 CC0 Ý nghĩa
0 0 ACCU2 = ACCU1
0 1 ACCU2 < ACCU1
1 0 ACCU2 > ACCU1
* Lệnh so sánh bằng nhau hai số thực 32 bits
Cú pháp ==R
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số thực 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu chúng giống nhau thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh không bằng nhau hai số thực 32 bits
Cú pháp <>R
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số thực 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu chúng khác nhau thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh lớn hơn hai số thực 32 bits
Cú pháp >R
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số thực 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu số thực trong ACCU2 lớn hơn ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh nhỏhơn hai số thực 32 bits
Cú pháp <R
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số thực 32 bits trong thanh ghi ACCU1 và ACCU2. Nếu số thực trong ACCU2 nhỏ hơn ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh lớn hơn hoặc bằng hai số thực 32 bits
Cú pháp >=R
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số thực 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu số thực trong ACCU2 lớn hơn hoặc bằng ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
* Lệnh so sánh nhỏhơn hoặc bằng hai số thực 32 bits
Cú pháp <=R
Lệnh khơng có tốn hạng.
Lệnh so sánh hai số thực 32 bits trong hai thanh ghi ACCU1 và ACCU2. Nếu số thực trong ACCU2 nhỏhơn hoặc bằng ACCU1 thì RLO = 1, ngược lại thì RLO = 0.
4.2.3 Các lệnh toán học
Tất cả các lệnh thực hiện với nội dung hai thanh ghi ACCU1 và ACCU2 đều tác động vào thanh ghi trạng thái như sau:
BR CC1 CC0 OV OS OR STA RLO FC
- x x x x - - - -
Trong đó hai bits CC1 và CC0 thay đổi theo quy tắc như bảng 4.10.
Bảng 4.10. Quy tắc thay đổi của CC0 và CC1 với các lệnh toán học
CC1 CC0 Ý nghĩa 0 0 Kết quả = 0 0 1 Kết quả < 0 1 0 Kết quả > 0 4.2.3.1. Nhóm lệnh làm việc với số nguyên 16 bits * Lệnh cộng Cú pháp +I Lệnh khơng có tốn hạng.
Lệnh thực hiện phép cộng hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2, kết quảđược ghi vào từ thấp của ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -32768 32767 thì bit OV có giá trị bằng 0, ngược lại 2 bit OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
Ví dụ: Cộng hai số nguyên 16 bits chứa trong IW10 và IW20, cất kết quả vào ô nhớ DBW20 của khối dữ liệu DB1. L IW10 L IW20 +I T DB1.DBW20 * Lệnh trừ Cú pháp -I Lệnh khơng có tốn hạng.
Lệnh thực hiện phép trừ số nguyên 16 bits trong từ thấp của thanh ghi ACCU2 cho số nguyên 16 bits trong từ thấp của thanh ghi ACCU1. Kết quảđược ghi vào từ thấp của ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -32768 32767 thì bit OV có giá trị bằng 0, ngược lại 2 bit OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh nhân
Cú pháp *I
Lệnh thực hiện phép nhân hai số nguyên 16 bits trong từ thấp hai thanh ghi ACCU1 và ACCU2, kết quảđược ghi vào từ thấp của ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -32768 32767 thì bit OV có giá trị bằng 0, ngược lại 2 bit OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh chia
Cú pháp /I
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép chia số nguyên 16 bits trong từ thấp của thanh ghi ACCU2 cho số nguyên 16 bits trong từ thấp của thanh ghi ACCU1. Kết quả là một số nguyên 16 bits sẽđược ghi vào từ thấp của ACCU1, phân dư của phép chia được ghi vào từ cao trong thanh ghi ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -32768 32767 thì bit OV có giá trị bằng 0, ngược lại 2 bit OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
4.2.3.2. Nhóm lệnh làm việc với số nguyên 32 bits
* Lệnh cộng
Cú pháp +D
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép cộng hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2, kết quảđược ghi vào ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -2147483648 (-2^31) 2147483647 (2^31-1) thì bit OV có giá trị bằng 0, ngược lại 2 bit OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh trừ
Cú pháp -D
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép trừ số nguyên 32 bits trong thanh ghi ACCU2 cho số nguyên 32 bits trong thanh ghi ACCU1. Kết quảđược ghi vào ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -2147483648 (-2^31) 2147483647 (2^31-1) thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh nhân
Cú pháp *D
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép nhân hai số nguyên 32 bits trong hai thanh ghi ACCU1 và ACCU2, kết quảđược ghi vào ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -2147483648 (-2^31) 2147483647 (2^31-1) thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh chia
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép chia số nguyên 32 bits trong thanh ghi ACCU2 cho số nguyên 32 bits trong thanh ghi ACCU1. Kết quả là một số nguyên 32 bits sẽ được ghi vào ACCU1. Nếu kết quả nằm trong khoảng -2147483648 (-2^31) 2147483647 (2^31-1) thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh lấy phần dư
Cú pháp MOD
Lệnh khơng có tốn hạng và xác định phần dư của phép chia số nguyên 32 bits trong thanh ghi ACCU2 cho số nguyên 32 bits trong thanh ghi ACCU1. Kết quả là một số nguyên 32 bits sẽ được ghi vào ACCU1. Nếu kết quả nằm trong khoảng -2147483648 (-2^31) 2147483647 (2^31-1) thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
4.2.3.3. Nhóm lệnh làm việc với số thực 32 bits
* Lệnh cộng
Cú pháp +R
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép cộng hai số thực dấu phẩy động nằm trong hai thanh ghi ACCU1 và ACCU2, kết quảđược ghi vào ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -3.402823E+38 -1.175495E-38 hoặc 1.175495E-38 3.402823E+38 thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh trừ
Cú pháp -R
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép trừ số thực 32 bits trong thanh ghi ACCU2 cho số thực 32 bits trong thanh ghi ACCU1. Kết quảđược ghi vào ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -3.402823E+38 -1.175495E-38 hoặc 1.175495E-38 3.402823E+38 thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1. Ví dụ: Thực hiện phép trừ hai số thực MD10 - MD14, kết quả cất vào MD20: L MD10 L MD14 -R T MD20 * Lệnh nhân Cú pháp *R Lệnh khơng có tốn hạng.
quảđược ghi vào ACCU1, nội dung thanh ghi ACCU2 không thay đổi. Nếu kết quả nằm trong khoảng -3.402823E+38 -1.175495E-38 hoặc 1.175495E-38 3.402823E+38 thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh chia
Cú pháp /R
Lệnh khơng có tốn hạng.
Lệnh thực hiện phép chia số thực 32 bits trong thanh ghi ACCU2 cho số thực 32 bits trong thanh ghi ACCU1. Kết quả là một số thực 32 bits sẽđược ghi vào ACCU1. Nếu kết quả nằm trong khoảng -3.402823E+38 -1.175495E-38 hoặc bằng 0 hoặc nằm trong khoảng 1.175495E-38 3.402823E+38 thì bit OV có giá trị bằng 0, ngược lại 2 bits OV và OS trong thanh ghi trạng thái có giá trị bằng 1.
* Lệnh lấy giá trị tuyệt đối
Cú pháp ABS
Lệnh này khơng có tốn hạng, nó xác định giá trị tuyệt đối của số thực trong ACCU1, kết quả ghi lại vào ACCU1. Lệnh này không làm thay đổi các bit trạng thái.
2.2.4. Lệnh logic tiếp điểm trên thanh ghi trạng thái
Do các lệnh toán học ở phần trên khi thực hiện không làm thay đổi nội dung bit RLO trong thanh ghi trạng thái nên nó được kết hợp với lệnh logic như AND, OR… dưới dạng lệnh logic tiếp điểm trên thanh ghi trạng thái.
Các lệnh này tác động lên thanh ghi trạng thái như sau:
BR CC1 CC0 OV OS OR STA RLO FC
- - - - - x x x 1
2.2.4.1. Lệnh AND
* Lệnh AND nhỏhơn
Cú pháp A <0
Lệnh tính ̅̅̅̅̅, kết quảđược ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có nhỏhơn 0 hay khơng (0 – sai, 1 –đúng) rồi thực hiện phép với RLO.
Ví dụ: Nếu số nguyên 16 bits x trong MW10 thoả mãn -2 x <3 thì báo đèn Q4.0 sáng.
L -2 L MW10 <=I L 3 -I A <0 =Q4.0
* Lệnh AND lớn hơn
Cú pháp A >0
Lệnh tính ̅̅̅̅̅ , kết quảđược ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có lớn hơn 0 hay khơng (0 – sai, 1 – đúng) rồi thực hiện phép với RLO.
* Lệnh AND khác nhau
Cú pháp A <>0
Lệnh tính [( ̅̅̅̅̅ ) ( ̅̅̅̅̅)], kết quả được ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có khác 0 hay không (0 – sai, 1 – đúng) rồi thực hiện phép với RLO.
* Lệnh AND bằng nhau
Cú pháp A ==0
Lệnh tính ̅̅̅̅̅ ̅̅̅̅̅, kết quảđược ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có bằng 0 hay khơng (0 – sai, 1 – đúng) rồi thực hiện phép với RLO.
* Lệnh AND lớn hơn hoặc bằng
Cú pháp A >=0
Lệnh tính ̅̅̅̅̅, kết quảđược ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có lớn hơn hoặc bằng 0 hay không (0 – sai, 1 –đúng) rồi thực hiện phép với RLO.
* Lệnh AND nhỏhơn hoặc bằng
Cú pháp A <=0
Lệnh tính ̅̅̅̅̅, kết quả được ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có nhỏ hơn hoặc bằng 0 hay khơng (0 – sai, 1 – đúng) rồi thực hiện phép với RLO.
2.2.4.2. Lệnh OR
* Lệnh OR nhỏhơn
Cú pháp O <0
Lệnh tính ( ̅̅̅̅̅), kết quả được ghi lại vào RLO. Như vậy, lệnh kiểm tra phép tính vừa thực hiện (cộng, trừ, nhân, chia…) có nhỏhơn 0 hay khơng (0 – sai, 1 –đúng) rồi thực hiện phép với RLO.
Ví dụ: Nếu số nguyên 16 bits x trong MW10 thoả mãn x < -1 hoặc x > 2 thì báo đèn Q4.0