mov 指令 合法和不合法

2021-06-17 15:11:40 字數 1279 閱讀 9324

合法:

mov ax,8h

//mov 暫存器,立即數

mov ax,bx

//mov  暫存器,暫存器

mov ax,ds     // mov 暫存器,段暫存器

mov ax,[0]// mov 暫存器,記憶體單元

mov [0],bx 

// mov 記憶體單元,暫存器

mov [0],cs

// mov 記憶體單元,段暫存器

mov [0], 5678h// mov 記憶體單元,立即數

------------------------// mov  記憶體單元,記憶體單元 是不合法的。

mov  ds,[0]

// mov 段暫存器,記憶體單元

mov ds,ax// mov 段暫存器,暫存器(cs不能這樣傳,這樣會導致執行錯誤)

------------------------// mov 段暫存器,段暫存器     是不合法的

------------------------// mov 段暫存器,立即數     是不合法的

不合法:

mov ds,8// mov 段暫存器,立即數

1.兩個運算元的型別不一致 –-----例如源運算元是位元組,而目的運算元是字;或相反

• 絕大多數雙運算元指令,除非特別說明,目的運算元與源運算元必須型別一致,否則為非法指令 mov al , 050ah;非法指令:050ah為字,而al為位元組

• 暫存器有明確的位元組或字型別,有暫存器參與的指令其運算元型別就是暫存器的型別

• 對於儲存器單元與立即數同時作為運算元的情況,必須顯式指明;

byte ptr 指示位元組型別 , word ptr 指示字型別。

2.兩個運算元不能都是儲存器 –------傳送指令很靈活,但主存之間的直接傳送卻不允許

• 8086指令系統不允許兩個運算元都是儲存單元(除串操作指令),要實現這種傳送,可通過暫存器間接實現

mov ax , buffer1;ax←buffer1(將buffer1內容送ax)

mov buffer2 , ax;buffer2←ax;這裡buffer1和buffer2是兩個字變數、;實際表示直接定址方式

3.段暫存器的操作有一些限制 –----段暫存器屬專用暫存器,對他們的操作能力有限

• 不允許立即數傳送給段暫存器 mov ds,100h;非法指令:立即數不能傳送段暫存器

• 不允許直接改變cs值 mov cs,[si] ;不允許使用的指令

• 不允許段暫存器之間的直接資料傳送 mov ds,es;非法指令:不允許段暫存器間傳送

uva 11019 題目資料不合法!

經過試驗,題目資料中,有各種不合法情況,只能使用scanf s進行讀入。否則會出現各種問題。即使用網上別人的標程,進行修改為gets一樣會掛。還有網上一些同學的程式對拍後出現錯誤。也ac了,資料太弱。我的程式十分緩慢。現在正在研究原因。2300ms 直接ac自動機強行跑每一行的串即可 include...

對不起,您輸入的內容不合法

v python全棧21期 if 全棧 in v print 包含敏感字元 v alex oldboy 張三 李四 if 李四 in v print 包含敏感字元 元組 tuple 同理v 預設按照鍵判斷,即判斷x是否是字典中的鍵 if x in v pass 問題1 判斷k1是否在v中?v if ...

Python列印不合法的檔名

問題 你的程式獲取了乙個目錄中的檔名列表,但是當它試著去列印檔案名的時候程式崩潰,出現了 unicodeencodeerror 異常和一條奇怪的訊息 surrogates not allowed 解決方案 當列印未知的檔名時,使用下面的方法可以避免這樣的錯誤 def bad filename fil...