請各位單片機高手幫我做幾道題,急啊!星期一就要教了。沒交就要死了。
一,下列指令是否正確
1.MOVX B . 03H 2.MOV R3.@R 3.MOV (20H).(30H) 4.CLR 20H 5.CPL 20H 6.RL R0
7.XRL A ,@R3
二,將存放(連續存放)在內部RAM 20H單元開始的20個字節數據按升序排序。
三。如上題意(二)一樣但改為降序排序
四。講外部RAM 40H~60H單元中的數據傳送到內部RAM的同地址區域,將原數據全部清零。
就這么多。高手麻煩幫忙給個答案,謝謝,感激!
我會做第四個,
org 0000h
ajmp main
org 0030h
main: MOV R0,#40H;記錄片內的地址
MOV R3,#20H;記錄要傳送的數據個數
MOV DPTR,#0040H;記錄片外地址
LOOP: MOVX A,@DPTR;開始傳送
MOV @R0,A
MOV A,#00H;開始清0源數據
MOV @DPTR,A
INC R0
INC DPTR
DJNZ R3,LOOP;檢查是否傳送完
OVER: AJMP OVER; 踏步指令
我是學生,所以寫的太死板了,請見諒
第二個稍微麻煩一點,改天替你解決啊,呵呵
org 0000h
ajmp main
org 0030h
main: mov r3,#19d;記錄循環次數
start: mov r5,r3;設置比較次數
mov r2,#20h;設置起始地址
goon: mov a,@r2;a中放要比較的底地址數
inc r2
mov r0,@r2;r0中放要比較的高地址
cjnz: a,r0,loop;兩數如果相等,跳到接著比較
ajmp next
loop: jc next ;r0大于a(即低地址放的是較小數,高低址放的是較大數,跳入記著比較)
xch a,r0
mov @r2,r0
dec r2
mov @r2,a
inc r2
next:djnz r5,goon;檢查是否比較完了
djnz r3,start;檢查是否完成可升學排列
over: ajmp over
其基本思想是冒泡法,先是挨個比較,比較一遍后就不最大的數放在了最高地址,然后再循環比較n-1(既第二次是比較19-1=18次)次,直到結束
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |