組合語言問題組合語言問題

2021-03-05 09:22:21 字數 5531 閱讀 7113

1樓:山水阿銳

微控制器中 沒有相等就跳轉的指令

其實,cjne實際上也實現了相等跳轉的功能的:

cjne a,#data,rel ;如果不等跳到rel指令a ;如果等就執行下一條指令 指令a...rel:指令b

...假如有一條相等就跳轉的指令cje(實際上沒有)cje a,#data,rel ;相等跳到rel指令b ;不等跳到指令b

...rel:指令a

...上面兩個功能完全一樣,所以沒必要加一條相等就跳轉的指令cje 。

相等跳轉可以用:

1:cjne

2:一樓的 兩數相減,為0則相等。但cmp比較指令是微機的微控制器沒有此指令,用subb的話原數被改變,要先保護。

3:兩數異或

xrl a,#data

jz rel ;結果為0跳到rel

用2/3的話注意:要用到a

jz rel ; a中的數為0,跳轉到rel.

2樓:做而論道

三個無符號單位元組數x,y,z...

這些數,事先,也應該存在某幾個儲存單元中。

3樓:智翊端秋穎

這幾道題目網上就有答案和解析

,順序不一樣

一、能夠將ax中的內容送到記憶體0000:0200h處的指令序列是3。

1、mov

ds,0

movbx,200h

mov[bx],ax

2、mov

ax,200h

movds,ax

movbx,0

mov[bx],ax

3、mov

ax,20h

movds,ax

movbx,0

mov[bx],ax

4、mov

bx,20h

movds,bx

movbx,0

mov[bx],ax

解析:答案1明顯錯誤了,不能將立即數送入段暫存器;答案2也不對,將200送入ax,mov

ax,ds明顯將此時的位址設定為0200:0000,實體地址為2000,和0000:0200的的實體地址不一致;答案3因為題目要求將ax值送入記憶體,而它一開始就改變了ax的值,所以不對;答案4正確,用bx來暫存資料

二、下列說法正確的是:4。

1、資料段和**段的段位址不能相同。

2、指令mov

ax,bx執行完後bx中的值為零。

3、乙個棧段的大小可以設為任意值。

4、當sp=0時,再次壓棧將發生棧頂超界,但壓棧操作有效。

解析:答案1錯誤,因為所謂的段,不過是人為安排的,對於計算機來說,指令和資料沒有任何區別,位址可以相同;答案2錯誤,mov指令,是不情況原暫存器裡面的值的;答案3也不對,棧段須有乙個段位址,段位址不能變,只有偏移位址可以變,這個大小是有範圍的;答案4正確,sp=0時,壓榨,sp=sp-2,產生了超界

三、下列指令的書寫正確的是:3。

1、push

al2、

movcs:[0],ds:[10]

3、pop

si4、

movds:[0],2

解析:答案1錯誤,壓堆指令一次性操作乙個字;答案2錯誤,記憶體空間之間不能互相傳送;答案3正確;答案4錯誤,不能將立即數送入記憶體空間

四、能夠只將al中的內容壓入棧的指令序列是3。

1、push

al2、

popax

3、mov

ah,0

push

ax4、

movax,0

push

ax解析:答案1錯誤,push操作單位是字;答案2錯誤,題目要求的是入堆;答案3正確,先將ah清零,然後壓入ax可以達到目的;答案4錯誤,將ax清空,然後壓入,等於壓入的是0

五、若將以1000h為段位址的整個段空間當作棧使用,那麼暫存器sp的初始值最合理的設定是1。

1、0000h

2、0001h

3、ffffh

4、fffeh

解析:以1000h為段位址的整個段空間,偏移位址為0-

ffffh,當棧中只有1個字時,偏移位址是fffeh,當棧為空時,sp=sp+2=ffff+2=0000,所以選擇1

六、在8086cpu系統中乙個棧段的容量最大為3。

1、1kb

2、512kb

3、64kb

4、32gb

解析:由於8086cpu暫存器只有16位,而sp等暫存器最大變化範圍就只能為0~ffffh,即64kb了…不僅僅是棧段,所有的8086cpu裡面的段都不能超越64kb

組合語言問題:

4樓:楓淨塵

(r0)抄= 7eh ,(7eh)= ,(7fh)= 3fh

你確定你的

題目mov 7eh, #00h 十六進製制的00h沒問題啊,00h減一不夠減,用計算機算得fffffffffffffffff,按照你題目的意思(7eh)= ffffffffffffffff

5樓:做而論道

mov r0, #7fh

mov 7eh, #00h

mov 7fh, #40h

dec @r0

dec r0

dec @r0

程式段執行後,(

回r0)

答= 7eh ,(7eh)= ffh,(7fh)= 3fh。

組合語言相關問題

6樓:做而論道

程式語言組合語言

3、在8086/8088cpu暫存器組中,資料暫存器主要是指

( ax )、( bx )、( cx )、( dx )。

4、假設(ds)=3000h,(si)=0040h,(30054h)=4336h,

則指令 sub [si+14h],0136h

執行後,(30054h)=( 4200h )。

5、結構化程式設計時,採用的基本結構有(順序)、(分支)、(迴圈)。

7、設機器的字長是16,-3的補碼和-129的補碼分別為(fffdh、ff7fh)。

8、8086/8088cpu對儲存器位址採用分段管理方法,每段大小可達(64k)位元組。

9、下面(     )指令是錯誤的。

a、cmp 15,bx

10、data dw 『1234』占用了(   )個位元組。--這是非法指令

11、彙編過程會把a**的彙編源程式彙編成( obj )格式的檔案。

12、已知sp=2110h,執行pop ax後,sp暫存器的值是( 2112h )。

13、匯程式設計序的主要功能是什麼?

把用助記符寫的組合語言指令,轉換成 cpu 能夠識別的機器碼。

14、8086/8088cpu有哪些基本定址方式?

立即、直接、暫存器、暫存器間接、暫存器相對 基址加變址、基址加變址相對。

15、8086/8088cpu主要有哪幾類指令?

不同教材有不同的說法。

一般是:

傳送、算術運算、位操作(即邏輯運算)、串操作、控制轉移、處理器控制。

16、簡述偽指令的作用。

偽指令用於控制匯程式設計序,指示它如何進行彙編。

17、組合語言程式設計的一般步驟是什麼?

根據要求,確定演算法;

根據演算法,編寫程式;

編譯、連線、執行;

排錯,修改;

最後,完成。

18、簡述迴圈程式的組成部分。

已知迴圈次數:

初始化次數計數器;

迴圈體;

次數減一,

次數判斷,不為零就跳轉去再次執行迴圈體。

--------

已知結束條件:

迴圈體;

判斷退出迴圈的條件,不滿足就跳轉去再次執行迴圈體。

19、編寫乙個程式段實現通過埠21h採集乙個8位資料,

並且把該資料傳送給埠1200h。

in    al, 21h

mov   dx, 1200h

out   dx, al

end20、如(ax)=0012h,(bx)=0034h,試編寫程式段

把它們裝配在一起形成(ax)=1234h。

mov  ah, al

mov  al, bl

end21、試編制乙個程式把bx暫存器內的二進位制數用十六進製制數

的形式在螢幕上顯示出來。

out_hex  proc

mov   cx, 0404h

b1: rol   bx, cl

mov   dl, bl

and   dl, 0fh

cmp   dl, 0ah

jb    b2

add   dl, 07h

b2: add   dl, 30h

mov   ah, 2

int   21h       ;顯示到螢幕

dec   ch

jnz   b1        ;處理4次

retout_hex  endp

7樓:匿名使用者

不保證全對。

3 ax bx cx dx

4 4200h

5 順序

結構 分支結構 迴圈結構

7 d8 a

9 c10 d

11 a

12 b

13 把組合語言源程式翻譯成目標程式

14 立即定址 暫存器定址 直接定址 暫存器間接定址 暫存器相對定址 基址加變址定址 相對基址加變址定址

15 資料傳送 算術運算 邏輯運算 串操作 程式控制 處理器控制16 用於告訴匯程式設計序如何進行彙編的指令

17 1、 分析問題,抽象出描述問題的資料模型 2、 確定問題的演算法思想 3、 畫出流程圖或結構圖 4、 分配儲存器和工作單元(暫存器) 5、 逐條編寫程式 6、 靜態檢查,上機除錯

18 初始化部分 迴圈體部分 調整部分 控制部分19 in al,21h

mov dx,1200h

out dx,al

20 mov ax,12h

mov bx,34h

mov cl,8

shl ax,cl

or ax,bx

21 codes segment

assume cs:codes

start:

mov bx,1010101010101010bmov cx,4

s1:mov bp,4

xchg cx,bp

rol bx,cl

xchg cx,bp

mov ax,bx

and ax,0fh

cmp ax,10

jb s2

add ax,7

s2:add ax,30h

mov dx,ax

mov ah,2

int 21h

loop s1

mov ah,4ch

int 21h

codes ends

end start

求助!組合語言MOV問題急求助組合語言中mov指令和add指令用法

1 我覺得不可以。2 lea是傳運算元位址,mov是移動位址中的資料 當然,這個資料還可能為乙個位址 3 中括號表示間接定址,對應暫存器中資料為二級位址,然後從二級位址中取出儲存的資料。4 期待其它答案。其它參考資訊 0.lea指令具有單時鐘週期,執行效率很高。1.它是cpu位址生成單元參與運算的,...

組合語言問題,關於輸出字串,組合語言問題,輸出了正確結果,但是下面還輸出了許多亂碼

沒大bai毛病,2處錯誤 decs sub ax,dx 這裡錯du了,dec不是幹這活zhi的.dec ax,dx 原數的兩dao個絕對值相版減 loop next mov ah,4ch 這裡加上退出指令。int 21h 其它權的沒問題。code ends 組合語言問題,輸出了正確結果,但是下面還輸...

組合語言題目,組合語言題目,求詳解

a2,b2,是a的平方,還是a 2?兩個數相乘,就要考慮溢位問題。y是32位?還是16位?需不需要考慮溢位?dseg segment org d 開始地址d a dw b dw c dw dseg ends assume cs cseg,ds dsegcseg segment start mov a...