組合語言MOV SI2019H這條指令錯誤。誰能詳細解釋下,非常感謝

2021-03-22 04:02:05 字數 2193 閱讀 2750

1樓:做而論道

intel 的 cpu,功能是很有限的,不能隨心所欲的指揮它。

一定要按照它能夠識別的指令來編寫程式。

傳送指令的源、目的,如果都是儲存器,cpu就不幹了,這就是錯誤指令。

以後學到乘法、除法等等指令,就知道了,各指令的應用範圍是很狹窄的。

2樓:永星天恆

1、mov指令不能用於記憶體到記憶體的操作

2、兩個運算元的型別都不確定

3、兩個運算元之間用逗號隔開

3樓:甘十九妹

對於mov 指令而言,表示位址單元,而2000h已經是乙個位址了,或稱著立即數吧,不能這樣傳送!還有一點:兩個運算元之間應該用逗號隔開!正確的是mov [si] ,2000h

4樓:匿名使用者

mov指令不能用於記憶體到記憶體的操作

5樓:匿名使用者

mov [si],[2000h]

打的都不完整

6樓:匿名使用者

主要是語法錯誤,應該看看有關語法的內容。因為不同的機種、公司都有不的定義。

組合語言mov指令是什麼?

7樓:匿名使用者

在組合語言中,mov指令是資料傳送指令,也是最基本的程式設計指令,用於將乙個資料從源位址傳送到目標位址(暫存器間的資料傳送本質上也是一樣的)。其特點是不破壞源位址單元的內容。

例如:mov ax,2000h;將16位資料2000h傳送到ax暫存器

mov al,20h;將8位資料20h傳送到al暫存器

mov ax,bx;將bx暫存器的16位資料傳送到ax暫存器

mov al,[2000h];將2000h單元的內容傳送到al暫存器

需要注意的是:

(1)兩個儲存單元之間不能直接傳送資料,即:mov指令只允許乙個運算元在儲存器中。mov [si],[2000h];這是錯誤的

(2)mov指令中立即數不能直接傳送給段暫存器(cs、ds、ss、es)和ip;段暫存器之間不能直接傳送。mov ip,2000 h ;這是錯誤的

(3)cs和ip不能作為目的運算元。mov cs,ax ;這是錯誤的

(4)mov指令中立即數不能作目標運算元。mov 2000h,[si] ;這是錯誤的

8樓:疏罡緒暖夢

我感覺你有誤區。。

計算機必須保證操作運算的物件資料型別是一樣的才可以進行正常的操作。。除非有特殊的規定,八位的跟

八位的運算,十六位的跟十六位的運算。。。本身第二句就是錯了,第三句也沒

有理由是完全正確的你說呢?

組合語言指令錯誤糾正

9樓:鯤鵬展翅

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。

組合語言資料偽指令DUP用法,組合語言中的dup有什麼作用

茲斬鞘 10 dup 1 重複定義了10個字元素,初始值為1,佔用10 2 20個位元組。5 dup 重複定義了5個字元素 其初始值實際為0 佔用5 2 10個位元組 因此總共佔用30個位元組。具體分析 在彙編定義變數的時候會用到dup,變數名 型別 初值表,dup用於把一個相同值賦值若干次,重複次...

組合語言中loop指令的含義

該指令的功能是 dec cx jnz即先對cx減1,然後判cx是否為0,不為0,轉後面給出標號所指的入口,為0,順序執行 功能有二 第乙個是在在迴圈使用時 mov cx,n s loop s 使得cx減一,然後繼續迴圈,注意是先減一,若減一後cx為零了,那麼就不執行迴圈了,跳過loop s向下執行。...

組合語言的偽指令是什麼

簡單理解就是匯 bai編du語言中那些zhi 沒有對應機器指令的彙編指令。dao 在計算機中直接執行的程式所對專應屬的叫機器 指令 語言,如果直接按二進位制表示出來就是一系列 0 和 1 當然,用機器語言編寫程式的時代一般都使用八進位制或十六進製制,它們和二進位制是3位對1位或4位對1位的關係,從而...