100條組合語言編乙個程式
1樓:網友
請到我的部落格隨便找乙個吧!
組合語言,軟體,程式等等
2樓:扣
學語言主要是實踐,我學過c語言,不過我是個菜鳥 2級c給菜過了 好開心,不過我對語言不感興趣,看看基礎的書 多看看例子 個人的菜鳥意見。
組合語言
3樓:網友
推薦答案說的是對的,迴圈執行256次。
首先你要明白一點,djnz ri,rel 這種djnz型別的語句,都是放在迴圈體的最後(也就是rel標號放在該條語句的前面)
也就是c語言中的「直到型」迴圈--do while。這種迴圈體無論ri中是什麼首先迴圈體會被執行一遍。
所以,明白了這一點,我們從r7 = 1開始看起。
djnz r7,rel,首先執行的是r7 = r7 - 1,此時r7等於0,然後不滿足條件,退出迴圈,繼續執行下一行語句。剛才說的,「直到型」迴圈,所以此時前面的迴圈體已經被執行一次,正好符合r7 = 1(程式設計師只想讓迴圈體被執行一次)
以此類推,r7 = 2, r7 = 3, r7 = 255(0xff)依次迴圈體會被執行2,3,255次。
我們發現從1~255(0x01~0xff)我們都用了一遍,分別對應迴圈體執行的次數。但是0x00我們沒有用。當我們另r7=0時,再根據指令的意思:
首先r7 = r7 - 1,(8位資料溢位後自動回到0),所以此時0-1會變成255(0xff)。先看到這裡,迴圈體被執行一次了,對吧!然後你再看看r7等於多少,255!
所以接下來的事情就和你直接將r7=255(0xff)道理一樣,再執行255次,所以加上先前的一次迴圈,一共255+1=256次迴圈。完畢。
4樓:亂七胡說八糟亂想
因乙個位元組為八位的二進位數,它的模就是256。你這從0開始回到下乙個0。所以它就是256。
5樓:網友
王爽書txt它怎麼可能呢?去書店,很瘦!乙個星期就可以完成了。但我告訴你,這本書酷之王是不是很系統,建議還是看看清華大學「ibm-pc組合語言程式設計。
6樓:網友
djnz r7,rel這句指令的意思是假如r7減1之後不等於0,就繼續執行;如果是減1之後等於0,則跳轉到rel。
首先r7=00h,八位的暫存器,減1之後等於255(0xffh),255不等於0,所以繼續迴圈;下乙個迴圈將開始時r7=255,繼續減,直到r7=0x1為止。所以說是256次迴圈。
組合語言
7樓:可軒
已知。30)=0dah
31)=0c2h
40)=0a6h
41)=0b9h
mov r0,#30h ;;r0=30h
mov r1,#40h ;;r1=40h
mov a,30h ;;a=0dah
addc a,@r1 ;;a=0dah+0a6h = 80h, 進位標誌cy=1
mov @r0,a ;;30)=80h
mov a,31h ;;a=oc2h
inc r1 ;;r1=41h
addc a,@r1 ;;a=0c2h+0b9h+1=7ch,進位標誌cy=1
mov @r1,a ;;41)=70h
結果 : a=7ch, (30h)=80h
組合語言
8樓:做而論道
20000h = 段位址 × 16 +偏移位址
當偏移位址取其最大值時,段位址,就能達到最小值。
該最小值,暫時寫成:sa = minnh。
在後邊添個零,代入公式,如下:
20000h = minn0h + 偏移位址最大值。
橫掃一眼,即可看出:
等式左邊,20000h,其最低位是 0。
等式右邊,其最低位,也必須是 0。
所以,偏移位址的最大值,只能是 fff0h。
由此,即可輕鬆匯出:sa (最小)=1001h。
許多人,解此題時,都是用 ffff 當做最大值!
用 ffff,只能算出 2000fh,算不出來 20000h。
那麼,20000h = ffffh,這個等式,根本就不成立!
算吧!結果,就是算出小數來了,怎麼看,也不對。
呵呵,這題目,也就是:小學的難度。
所以,王爽出題後,並沒有給出答案或解題思路。
但是,他沒有想到,學微機的人,如此缺乏小學知識。
9樓:網友
因為實體地址為段位址*16+偏移位址,偏移位址範圍為0000h到ffffh.
0001h<<1+0000h到0001h<<1+ffffh,相加,得到00010h到0010h+ffffh=1000fh
20000h-ffffh)到(20000h-0000h),得到10001h和20000h,對位址10001h由於段位址必須為16的倍數,要取到位址20000h,最小隻能取10010h,把位址右移一位,得到sa的取值最小為1001h,最大為2000h
組合語言
10樓:可軒
mov r0,#30h ;;r0=30h
mov r1,#40h ;;r1=40h
mov a,30h ;;a=0dah
addc a,@r1 ;;a=0dah+0a6h = 80h, 進位標誌cy=1
mov @r0,a ;;30)=80h
mov a,31h ;;a=oc2h
inc r1 ;;r1=41h
addc a,@r1 ;;a=0c2h+0b9h+1=7ch,進位標誌cy=1
mov @r1,a ;;41)=70h
結果 (a)=(7ch ),30h)=(80h)
為什麼組合語言編出來的程式要比高階語言編出來的執行效率高
組合語言編譯後直接面對機器語言,演算法直接。高階語言能實現功能,但在內部執行時走彎路,所以時間慢。因為彙編可以直接操縱硬體,省略很多冗餘的指令,可以進行位操作,有些功能用高階語言實現起來很麻煩 不是指源 尤其是那些不支援位操作的高階語言,而用匯編就很簡單了 當然,代價就是犧牲移植性 高階語言 彙編 ...
兩個十六位二進位制數相減完整組合語言程式
兩個十六位進位制數相減 data segment num1 dw 1111000011110010b 被減數num2 dw 1111000011110001b 減數num3 dw 結果 data ends code segment assume cs code,ds datastart mov ax...
求一道51微控制器程式設計題的程式,組合語言,謝謝了
程式有些長 還是自己查些資料 反對伸手注意 把課本中的相關程式整合在一起就可以了。這個,你在找現成的麼?51微控制器組合語言的一道題 qc mov dpl,00h mov r2,8 clr 00h qc1 mov a,r2 dec a add a,dpl mov dpl,a mov dph,21h ...