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 nhathung1101Với servo Yaskawa thì dùng phần mềm Wide field 3. Dùng được hay không thì động não đi....
-
Channel: Điện tử công nghiệp
hôm nay, 00:35 -
-
bởi bqvietServo cuối cùng vẫn chỉ là điều chỉnh tốc độ và đọc phản hồi vị trí
Qua cổng song song LPT cổ
https://www.electronicsforu.com/elec...eed-controller
Qua cổng USB - xem thêm đám FT232RL-
Channel: Điện tử công nghiệp
Hôm qua, 15:56 -
-
bởi thiennam0703Em đang tìm hiểu cách xây dựng chương trình điều khiển động cơ Servo Yaskawa bằng máy tính tuy nhiên khi tìm kiếm trên mạng các hướng dẫn thì thường là điều khiển bằng vi điều khiển hoặc điều khiển bằng PLC hay điều khiển động cơ...
-
Channel: Điện tử công nghiệp
Hôm qua, 15:32 -
-
Trả lời cho Tổng hợp các thông tin về mạch nạp cho AVRbởi bacthoMình cũng bị như vậy mà chưa biết ở đâu
-
Channel: Vi điều khiển AVR
21-11-2024, 21:00 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi nhathung1101Câu trả lời là không dùng được.
Hai lớp dán mặt trước và mặt sau, gọi là film phân cực. Muốn hiểu rõ về nó thì chịu khó search nhé. Ở đây có rất nhiều chó cứ ngửi thấy phân là sủa nhặng, nên không giải thích nhiều....-
Channel: Thiết bị điện tử cá nhân
21-11-2024, 16:20 -
-
Comment on Tổng hợp các thông tin về mạch nạp cho AVRbởi Memem
-
Channel: Vi điều khiển AVR
21-11-2024, 15:10 -
-
Trả lời cho Tổng hợp các thông tin về mạch nạp cho AVRbởi MememMọi người ơi cho em hỏi cái này ạ, hiện tại em đang làm btl về hiển thị giá trị nhiệt độ trên led 7 thanh sử dụng atmega16, code em chạy trên mô phỏng rất oke nhưng khi lắp qua mạch thực thì bị lỗi ở led đầu tiên bị lỗi như thế này...
-
Channel: Vi điều khiển AVR
21-11-2024, 15:10 -
-
bởi mantruongepuNhờ cả nhà tìm giúp mình thông tin IC này với, thấy ghi 943B W58BAL mà mình tìm mấy ngày nay không được, nó được đóng gói dạng TSSOP 8. Cám ơn cả nhà....
-
Channel: Điện tử dành cho người mới bắt đầu
20-11-2024, 14:40 -
-
bởi TherulCảm ơn bạn đã chia sẻ câu chuyện và quá trình phát triển sản phẩm của mình. Trước tiên, thật may mắn khi bạn vượt qua tai nạn và vẫn giữ được niềm đam mê cũng như khả năng sáng tạo trong lĩnh vực kỹ thuật. Việc bạn tiếp tục...
-
Channel: từ PIC tới dsPIC
20-11-2024, 07:20 -
-
Trả lời cho Em muốn hỏi mọi người về nguyên lý hoạt động, tần số của mạch công suất trong máy rửa siêu âm ạ.bởi nguyendinhvanBạn nên nghiên cứu cái chấn lưu đèn ống Compact fluorescent lamp hay đèn compact trước đã. Nó rẻ đỡ tốn kém.
Sau khi hiểu rõ rồi thì chuyển sang cái mạch này.
Ở cái chấn lưu, tần số của nó linh tinh lắm, tùy điện áp nguồn, tùy...-
Channel: Hỗ trợ học tập
19-11-2024, 22:44 -
Comment