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
-
bởi nhathung1101Muốn đặt gì thì cũng phải có thông tin cơ bản. Việc nhỏ thế này mà phải dấu giếm thì người lớn không thèm làm đâu.
Cho bạn 3 ngày, không là sẽ xóa.-
Channel: Đặt hàng
Hôm qua, 22:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi nhathung1101Schmit Trigger là chuẩn với điều kiện rise > 0,8V.
Bí thì dùng vi với tích gì đó, miễn đừng nói phân kẻo chó ở đây lại sủa nhặng.-
Channel: Kỹ thuật điện tử tương tự
Hôm qua, 21:57 -
-
bởi trungautMình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
-
Channel: Đặt hàng
Hôm qua, 14:27 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
21-12-2024, 08:56 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
-
Trả lời cho Hỏi cách điều chế xungbởi nguyendinhvanCó gì mà khó ?
Răn cưa vuông đây
...-
Channel: Kỹ thuật điện tử tương tự
15-12-2024, 23:36 -
-
Trả lời cho hỏi về tụ điệnbởi ndp62Chữ " VENT" không phải là tên hãng sx tụ đâu ,vó thế là 1 ký hiệu liên quan tụ lowesr ?
-
Channel: Điện thanh
15-12-2024, 18:24 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi bqvietTrừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 22:02 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi namlangnhoE thử 3 cái nguồn nó đều giống nhau. Nên e làm tiếp địa luôn.
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 19:58 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi mèomướpDạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 18:51 -
Comment