có bác nào biết cách viết asm để so sánh lớn hơn hay nhỏ hơn giá trị định sẵn không?làm ơn cho mình xin code.CÁM ƠN NHIỀU !!!!!!!!
Thông báo
Collapse
No announcement yet.
so sánh lớn hơn,nhỏ hơn trong ASM
Collapse
X
-
Nguyên văn bởi thaithanhtam Xem bài viếtcó bác nào biết cách viết asm để so sánh lớn hơn hay nhỏ hơn giá trị định sẵn không?làm ơn cho mình xin code.CÁM ƠN NHIỀU !!!!!!!!
nguong equ 100 ; dat nguong theo yeu cau
mov A,giatricansosanh
cjne A,#nguong,khac_nguong
khac_nguong:
;if A < nguong thi C=1
JC nho_hon
;A>=nguong
; Place your code here for >= nguong
sjmp end_sosanh
nho_hon:
; Place your code here for < nguong
end_sosanh:
email:mahaco@fpt.vn
-
Nguyên văn bởi thaithanhtam Xem bài viếtcó bác nào biết cách viết asm để so sánh lớn hơn hay nhỏ hơn giá trị định sẵn không?làm ơn cho mình xin code.CÁM ƠN NHIỀU !!!!!!!!
Ví dụ cho "nhảy nếu A lớn hơn"
Code:;định nghĩa Macro %*DEFINE (JGT(VALUE, LABEL)) ( CJNE A, #%VALUE+1, $+3 JNC %LABEL ) ;Xong, giời thì sử dụng, so sánh A, và 1 số %JGT(55H, LON_HON) ;Chỗ này dành cho chương trình nếu A nhỏ hơn ;.... LON_HON: ;Chỗ này dành cho chương trình nếu lớn hơn ...
Diễn đàn Vi điều khiển:
Comment
-
Nguyên văn bởi thaithanhtam Xem bài viếtnhưng giá trị a của mình luôn biến thiên các bạn ơi,giúp mình nhe!!!!!
mov A,giatricansosanh
giatricansosanh luôn biến thiên theo ý bạn mà, nó là 1 biến chiếm 1 ô nhớ 1 byte trong RAM.
Bạn hãy học ASM hơn nữa nhé, kiến thức của bạn thấy không ổn!
email:mahaco@fpt.vn
Comment
-
Nguyên văn bởi hoctro89xxx Xem bài viếtMẫu đây bạn ạ:
nguong equ 100 ; dat nguong theo yeu cau
mov A,giatricansosanh
cjne A,#nguong,khac_nguong ;(Cái này là so sánh với 100 chứ không phải so sánh với giá trị chứa trong ô nhớ địa chỉ 100)
khac_nguong:
;if A < nguong thi C=1
JC nho_hon
;A>=nguong
; Place your code here for >= nguong
sjmp end_sosanh
nho_hon:
; Place your code here for < nguong
end_sosanh:
nguong equ 100 ; dat nguong theo yeu cau(hằng số so sanh sẽ chứa trong ô nhớ 100
giatricansosanh equ 20h; them như vấy cho bạn ấy dể hiểu(biến để so sánh chứa trong ô nhớ 20h)
mov A,giatricansosanh
cjne A,nguong,khac_nguong
khac_nguong:
;if A < nguong thi C=1
JC nho_hon
;A>=nguong
; Place your code here for >= nguong
sjmp end_sosanh
nho_hon:
; Place your code here for < nguong
end_sosanh:Last edited by phienbinh; 09-06-2008, 14:23.
- 1 like
Comment
-
Nguyên văn bởi thaithanhtam Xem bài viếtcám ơn hai bạn,nhưng mình không biết c,mình muốn hỏi code viết bằng asm.các bạn có thì cho mình xin nhe,cám ơn nhiều lắm.
Comment
-
Nguyên văn bởi thaithanhtam Xem bài viếtcó bác nào biết cách viết asm để so sánh lớn hơn hay nhỏ hơn giá trị định sẵn không?làm ơn cho mình xin code.CÁM ƠN NHIỀU !!!!!!!!
nguong equ r1
giatricanss equ r2
..............................
mov a,nguong
sub a,giatricanss
jc nhohon ;kiểm tra co c để biết giá trị lớn hơn, bằng, hay nhỏ hơn
jz bang ; kiểm tra co z de biet gia tri co bang hay khong
;nếu giatricanss lon hon nguong làm lệnh kế
Ở đây mình dùng lệnh SUB(trừ), lấy giá trị cần so sánh trừ cho ngưỡng, nếu kết quả lớn hơn hoặc bằng thì cờ c = 0, nếu kết quả nhỏ hơn thì cờ c = 1. Như vậy chúng ta đi kiểm tra cờ c thì sẽ biết kết quả lớn hơn hoặc bằng hay nhỏ hơn. Để biết kết quả có bằng không thì ta kiểm tra cờ z, nếu bằng thì cờ z = 1.
Comment
-
hi.. chắc bạn mới đụng vào 89, mà bạn có tài liệu nào về tập lệnh của 89 ko, của thầy tống văn on hoặc các tài liệu trong các trường đại học chẳng hạn.
bạn coi kĩ chỗ giải thích cho lệnh CJNE ở trang 278 trong sách của thầy tống văn on.
cjne x,y,nhãn
x khác y thì nhảy đến nhãn
x=y thì thực hiện lệnh kế.
đồng thời:
c=1 nếu x<y
c=0 nếu x>=y
trong đó
x là a,Rn hoặc @Ri
y là data,Rn...
nhãn: là tên nhãn bạn đặt ở đâu mà muốn chương trình nhảy tới.
và giá trị so sánh ở đây là giá trị nguyên không dấu 8 bit (0-255)
Comment
-
Ngoài chống nhiễu ở phần cứng, thì ở phần mềm bạn viết đoạn code kiểm tra tồn tại của tín hiệu tại cổng nhận sau 1 thời gian nhất định (thường nhiễu có biên độ cao nhưng thời gian tồn tại ngắn), trong thời gian kiểm tra nếu vẫn tồn tại liên tục thì nhận nó là tín hiệu, ngược lại thì coi là nhiểu.
Thí dụ, sau khi vào ngắt ( chân INT0, active logic = 0):
push r0
move r0 # 50
loop1: jb INT0, loop2 ; if INT0=1 > nhiểu, nhảy đến loop2 (bỏ qua).
djnz r0, loop1
------ ; tín hiệu thật vào xử lý
------
loop2: pop r0
reti
Bạn thử xem.
Comment
-
CÁM ƠN CÁC BẠN,BÀI TOÁN CHỐNG NHIỂU CHO NGẮT MÌNH ĐÃ GIẢI QUYẾT XONG RỒI.
Mình chọn ngắt theo mức & cho kiểm tra khi chân ngắt về lại mức 1 mình cho delay khoảng 50ms xong mới thực hiện lệnh trong ngắt,hết nhiểu các bạn ạ.Last edited by thaithanhtam; 23-06-2008, 22:49.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Vg , thôi e chả mod miếc gì nữa kệ nó vậy....
-
Channel: Điện tử gia dụng
Hôm qua, 15:25 -
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamNhà sản xuất quat đã tính đường kính dây đồng quạt senko 102 của bạn cho công suất tối đa là 24w,áp 220voltAC. Bây giờ tăng áp, dòng tăng, quạt nóng. Lấy gì chứng minh quạt không cháy.
Lên diễn đàn nhờ giúp đỡ cần có sự thông minh để tránh là chuột bạch.-
Channel: Điện tử gia dụng
Hôm qua, 07:13 -
-
Trả lời cho Xin hỏi về quạt điệnbởi trthnguyenTốc độ theo tính toán là tốc độ không tải (không cánh quạt và bỏ qua ma sát), khi có cánh quạt thì lực cản của không khi làm quạt quay chậm lại. Tăng điện áp k làm tăng tốc độ k tải nhưng tăng dòng điện trong cuộn dây, tăng lực để...
-
Channel: Điện tử gia dụng
04-10-2024, 11:17 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Hic bó tay. Thôi kệ nó vậy. thanks bác nhé....
-
Channel: Điện tử gia dụng
04-10-2024, 08:05 -
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamCũng không được.
Số vòng dây quạt được tính từ điện thế 220VAc và tần số 50h. Bây giờ dùng tần số 70h thì điện thế quạt >220 Volt làm quạt quay chậm .
Nếu muốn học hỏi, thí nghiệm thì cắt bò bớt 1 cặp cực, giãm điện thế xuống 110Volt, thì quạt sẽ...-
Channel: Điện tử gia dụng
03-10-2024, 15:54 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11vậy thì phải tăng Hz rồi, bác có cách nào tăng từ 220ac/50hz lên 220ac/70hz ko ạ ?...
-
Channel: Điện tử gia dụng
03-10-2024, 09:00 -
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamTốc độ quạt tính bằng công thức N = 60 x F /P
F= tần số lưới điện.
P = số cặp cực, quạt có số cặp cực là 2
N = số vòng quay
N= 60 X50 / 2 = 1500 vòng /phút.
Thay đổi điện thế là thay đổi công suất . Nếu...-
Channel: Điện tử gia dụng
02-10-2024, 14:44 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Làm như thế nào hả bác ?...
-
Channel: Điện tử gia dụng
02-10-2024, 07:57 -
-
Trả lời cho Xin hỏi về quạt điệnbởi trthnguyenTăng điện áp......................
-
Channel: Điện tử gia dụng
01-10-2024, 09:22 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Có cách nào để quạt này quay nhanh hơn ko bác ?...
-
Channel: Điện tử gia dụng
30-09-2024, 21:42 -
Comment