組合語言指令錯誤糾正

2021-03-03 20:36:45 字數 818 閱讀 3199

1樓:鯤鵬展翅

1 mov cx,dl;資料型別不匹配,cx為16位,dl為8位

2 mov ip,ax ;ip為能在指令中出現,它是下一條要執行指令的偏

636f707962616964757a686964616f31333234323632移地址,不允許指令對其進行改變

3 mov es,1234h ;立即數1234h不能直接送段暫存器

4 mov es,ds ;段暫存器之間不能直接傳送資料

5 mov al,300 ;資料型別不匹配,300超過一個位元組,無符號位元組最大數為255

6 mov [sp],ax ;sp為堆疊指標,對棧頂元素操作應該用push指令,而不能使用mov指令

7 mov ax,bx+di ;應該改為mov ax,[bx+di]

8 mov 20h,ah ;目的操作不能為立即數

9 xchg [si],30h ;交換指令的兩個運算元均不能為立即數

10 pop cs ;cs不能作為目的運算元,也就是說不能通過指令直接改變cs的值

11 sub [si],[di] ;兩記憶體單元不能直接進行減法操作

12 push ah ;堆疊操作以字為單元

13 adc ax,ds ;加法指令的運算元不能為段暫存器

14 add [si],80h ;沒有指定記憶體單元的資料型別,應該改為add byte ptr [si],80h

15 in al,3fch;外設埠地址超過8位時應該用dx,應該改為 mov dx,3fch in al,dx

16 out dx,ah ;輸入/輸出指令為累加器專用指令,8位累加器為al而不是ah。

組合語言裡jc指令是什麼意思,組合語言裡jc指令時啥意思

jc jump if carry 當運算產生進位標誌時,即cf 1時,跳轉到目標程式處。e69da5e6ba9062616964757a686964616f31333363396462 例如 add al,bl jc carrybit inc al 如果al bl產生了進位,這一句就不執行了。car...

微控制器組合語言指令中中斷返回指令ret和reti有什麼

reti 是中斷返回指令 ret 是子程式返回指令 reti比ret多一步清除中斷優先順序狀態位,讓同級別的中斷有機會得到響應。中斷指令 reti 做為中斷跳出指令除了將堆疊中儲存著的地址取出,送回pc 使程式從主程式的中斷處繼續往下執行的作用外,還有將 優先順序生效 觸發器清零的功能。ret 是子...

微控制器組合語言指令中條件轉移指令jbc與jc的區別

一 作用不同 jbc指令判斷該位為1則轉移,同時將該位置0。jc指令判斷有借位則轉移,也就是說兩數相減為負轉移。二 含義不同 jbc指令相當與jb和clr 位 二條指命的組合,它可在轉移的同時清除被判位 jc指令只能對cy進位位進行判斷為高後轉移,並不能清除它,二條指令都當被測位為高進時進行相對轉移...