對PL0原編譯器進行了以下的擴充:1.增加以下保留字else(elsesym), for(forsym),to(tosym),downto(downtosym),return(returnsym),[(lmparen),](rmparen)
2.增加了以下的運算符:+=(eplus),-=(eminus),++(dplus),--(dminus)
取址運算符&(radsym),指向運算符@(padsym)
3.修改單詞:修改不等號#為<>
4.擴充語句:(1)增加了else子句
(2)增加了for語句
5.增加運算:(1).++運算 (2).--運算;(3).+=運算 (4).-=運算;(5).&取址運算;
(6).@指向運算;
6.增加類型:(1).增加多維數組a[i1][i2][i3]……[i(n-1)][i(n-2)][in] (2).增加指針類型(任何變量都能存放指針,但不支持指針的指針,如b:=@@a應該改寫為c:=@a,b:=@c)
7.將過程procedure擴展為函數:(1).允許定義過程時在其后加參數(var a, var b,……..,var n) (2)允許通過指針向函數形式參數傳地址;(3)允許返回值;可以用 a:=p(a,b,c….,n) 返回
標簽:
downtosym
returnsym
elsesym
downto
上傳時間:
2016-07-02
上傳用戶:saharawalker
通用數據傳送指令.
MOV 傳送字或字節.
MOVSX 先符號擴展,再傳送.
MOVZX 先零擴展,再傳送.
PUSH 把字壓入堆棧.
POP 把字彈出堆棧.
PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧.
POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次彈出堆棧.
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧.
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次彈出堆棧.
BSWAP 交換32位寄存器里字節的順序
XCHG 交換字或字節.( 至少有一個操作數為寄存器,段寄存器不可作為操作數)
CMPXCHG 比較并交換操作數.( 第二個操作數必須為累加器AL/AX/EAX )
XADD 先交換再累加.( 結果在第一個操作數里 )
XLAT 字節查表轉換.
── BX 指向一張 256 字節的表的起點, AL 為表的索引值 (0-255,即
0-FFH) 返回 AL 為查表結果. ( [BX+AL]->AL )
標簽:
MOVSX
MOVZX
PUSH
傳送
上傳時間:
2016-08-17
上傳用戶:13681659100