1樓:匿名使用者
cjne指令,影響cy標誌位,比如,執行cjne a,#data,rel後,當a=data時,cy=0,
微控制器 組合語言 兩數比較大小
2樓:匿名使用者
微控制器有比較指令cmp的嗎,請回答者再看看書吧。可以用cjne指令,它有比較功能,如cjne a,#data,label 當a<#data時,進位位置一,就可以判斷了。程式如下:
clr c ;先把進位位清零,以防誤判cjne a,#data,no_equ ;不等則轉到no_equ,相等則直接順序執行
....... ;執行相等時的程式no_equ:
jc lower ;繼續判斷,小於則跳轉到 lower,大於則順序執行
.......
lower:
......end
3樓:匿名使用者
不要想複雜了,兩個cmp就可以啦
cmp r0,r2
jb abc
cmp r1,r3
jb abc
jmp nobelow
abc:
...nobelow:...
4樓:匿名使用者
還是自己看書學習吧 這個簡單的問題 多看幾遍自然會了
微控制器實驗中,怎麼用匯編比較大小?
5樓:匿名使用者
微控制器比較大小可以用減法指令來實現, 比如比較兩個數a與b的大小,步驟如下:
1、先將借位清0。
2、執行指令subb,也就是a-b。
3、判斷,借位c的狀態,如果c等於1,那麼ab。
舉例如下:
cmpdat:
mov a,30h ;將被減數送累加器aclr c ;清借位subb a,31h ;減法運算
jc cmpd1 ;如果有借位轉
clr p1.0 ;點亮p1.0led燈,說明30h數大retcmdpd1:
clr p1.1 ;點亮p1.1燈,說明31h數大。ret
6樓:匿名使用者
微控制器實驗中,用組合語言程式設計比較兩個數大小,主要用subb減法指令,也可以使用cjne指令。示例程式如下:
;啟動入口
*** 0000h ;復位啟動
ljmp start ;
*** 0100h ;
;;主控程式
start: mov r0,#30h
mov x,#0
mov y,#0
loop: mov a,@r0
clr c
subb a,#111
jnc next
cpl c
mov a,@r0
subb a,y
jc num
mov y,@r0
num: mov a,@r0
subb a,#60
jc incr0
inc x
incr0: inc r0
jmp loop
next: jmp $
;x equ 20h ;
y equ 21h ;
end ;
51微控制器 用組合語言怎麼程式設計:幾個有符號數的比較大小
7樓:匿名使用者
51微控制器中,沒有專門的有符號數比較指令,只能通過一些變通的方法來實現,比如:
比較30h和40h中有符號數的大小,結果放在r2中,大於則為1,等於為0,小於為128:
cmpdat:
mov a,30h
jb acc.7,cmpf1
mov b,a
mov a,40h
jb acc.7,cmpz2 ;30h正,40h負所以30h>40h
cjne a,b,cmpz1 ;均為正,比較大小mov r2,#0
retcmpz1:
jc,cmpz2
cmpz11:
mov r2,#128
retcmpz2:
mov r2,#1
retcmpf1:
anl a,#7fh
mov b,a
mov a,40h
jnb acc.7,cmpf3 ;30h負,40h負sjmp cmpz11 ;30負,40h正,所以30h<40hcmpf3:
anl a,#7fh
cjne a,b,cmpf10 ;兩個均為負數mov r2,#0
retcmpf10:
jc cmpz2 ;30h<40h(負數小者大)sjmp cmpz11 ;30h>40h
8樓:做而論道
設內部ram中的30h和31h單元中有兩個帶符號數,求其中的大數,放在32h單元中。
; mov 32h, 30h ;先取一個放好.
mov a, 30h
clr c
subb a, 31h ;(30h)-(31h)
jnb acc.7, zzz ;差為正數則轉移.
jb ov, _end ;負、且溢位轉至結尾.
sjmp *** ;否則去存31h
zzz:
jnb ov, _end ;差為正、且無溢位轉至結尾.
***:
mov 32h, 31h
_end:
sjmp $end
9樓:匿名使用者
subb a,b
jnb cy ,d0 ;d0是a>b
51彙編實現比較三個數的大小並排序
10樓:做而論道
假設有三個數存在40h、41h、42h單元中。
先在三個數字中,找一個最大的,放在40h。
再在餘下的兩個數字中,找一個最大的,放在41h。
11樓:匿名使用者
51微控制器實現比較三個數的大小,並將數由小到大分別存入40h、41h、42h單元中
*** 0000h
ajmp main
*** 0100h
main: mov 30h,#98h
mov 31h,#88h
mov 32h,#78h
mov a,30h
cjne a,31h,***p1
***p1: jc b1
cjne a,32h,***p2
***p2: jc a1
mov 42h,30h
mov a,31h
cjne a,32h,a2
a2: jc a3
mov 41h,31h
mov 40h,32h
sjmp $
a3: mov 41h,32h
mov 40h,31h
sjmp $
a1: mov 42h,32h
mov 41h,30h
mov 40h,31h
sjmp $
b1: mov a,31h
cjne a,32h,***p3
***p3: jc b3
mov 42h,31h
mov a,30h
cjne a,32h,***p4
***p4: jc b3
mov 41h,30h
mov 40h,32h
sjmp $
b3: mov 42h,32h
mov 41h,31h
mov 40h,30h
sjmp $ ;
b2: mov 42h,32h ;
mov 41h,31h ;
mov 40h,30h ;
sjmp $end
12樓:匿名使用者
;氣泡排序
*** 0000h
sjmp main
*** 0030h
main: mov 30h,#65hmov 31h,#61h
mov 32h,#66h
mov r0,#30h
mov r3,#2
mov r4,#2
loop: mov a,@r0
inc r0
mov b,@r0
cjne a,b,k1
k1:jc l1
djnz r3,loop
djnz r4,l2
sjmp l3
l1:xch a,@r0
dec r0
mov @r0,a
inc r0
djnz r3,loop
djnz r4,l2
sjmp l3
l2:mov r0,#30h
mov r3,#1
ljmp loop
l3: nop
end;懸劍
;yinweiyounidecunzai
微控制器組合語言裡 db,微控制器組合語言裡 DB
微控制器匯bai 編語言中的db是以位元組du為單位定zhi義一個資料段,一dao般用於查表程式中,舉例回 說明 display mov dptr,tab mov a,r2 movc a,a dptr mov p0,a rettab 共陰極答數碼管顯示 表db 3fh,06h,5bh,4fh,66h...
微控制器中斷返回指令,微控制器組合語言指令中中斷返回指令RET和RETI有什麼不同?
程式結構錯誤。mov th0,65536 50000 256 定時50毫秒 mov tl0,65536 50000 256mov ie,82h setb tr0 主程式,到這,就沒有了,這那行?timer 下面就是 定時器中斷服務程式mov th0,65536 50000 256 初脈衝50ms m...
如何在51微控制器使用c語言跟組合語言
如何用keil在 baic中嵌入彙編 要在duc檔案zhi中要嵌入彙編dao的地方用 pragma a 和 pragma enda 分隔開來內 具體請查容看 keil c 手冊裡有介紹 在c檔案中要嵌入彙編的地方用 pragma a 和 pragma enda 分隔開來 要問什麼啊,是程式呢,還是哪...