免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
80386ASM程序設(shè)計(jì)基礎(chǔ)(五)
控制轉(zhuǎn)移指令,串操作指令
  80386控制轉(zhuǎn)移指令包括:轉(zhuǎn)移指令,循環(huán)指令,過程調(diào)用和返回指令。
  A.轉(zhuǎn)移指令包括無條件轉(zhuǎn)移指令JMP和條件轉(zhuǎn)移指令,無條件轉(zhuǎn)移指令分為段內(nèi)直接轉(zhuǎn)移,段內(nèi)間接轉(zhuǎn)移,段間直接轉(zhuǎn)移,段間間接轉(zhuǎn)移。由于80386有保護(hù)模式和實(shí)模式,在實(shí)模式下,段內(nèi)轉(zhuǎn)移的范圍在-128~127,段間轉(zhuǎn)移最大范圍為64K。在保護(hù)模式需要用48位指針,即CS:EIP(16位+32位)。條件轉(zhuǎn)移指令有很多包括JCXZ,JECXZ,JBE,JAE,JA,JB等,其用法和8086相似。
 
  B.循環(huán)指令LOOP,LOOPZ,LOO0PE,LOOPNZ,LOOPNE,TASM支持助記符LOOP,LOOPWE,LOOPWZ,LOOPWNZ,LOOPWNE,LOOPD,LOOPWD,LOOPDE,LOOPDNE,LOOPDNZ。以CX作為計(jì)數(shù)器時(shí),就可用LOOP,LOOPWE,LOOPWZ,LOOPWNZ,LOOPWNE;在以ECX作為計(jì)數(shù)器時(shí),以LOOPD,LOOPDE,LOOPDZ,LOOPDNZ,LOOPDNE,下面的一段例子可以說明問題:
  ABC PROC
     MOV CX,100H
     AA:
       ;ADD YOUR CODES HERE
       LOOP AA
  ABC END

  C.過程調(diào)用和返回調(diào)用CALL,RET
  這兩個(gè)指令與8086的用法相同,但由于80386下有實(shí)模式和保護(hù)模式下。在實(shí)模式下,無論是段內(nèi)調(diào)用還是段間調(diào)用均采用32位指針,即CS:IP,它們的用法與8086下相同。在保護(hù)模式下,段間調(diào)用和段內(nèi)調(diào)用均用48位指針,即ECS:IP。RET用于返回,具體實(shí)現(xiàn)過程會(huì)比較復(fù)雜,在介紹完80386的地址的管理機(jī)制后會(huì)作介紹,先介紹一下以下CALL指令在8086中的用法:
  a.段內(nèi)直接轉(zhuǎn)移,具體格式:CALL 過程名。此時(shí)CS不入棧,IP的內(nèi)棧入棧,入棧后再將加上目的地址與CALL指令的下一條指令的偏移地址之差值就可以轉(zhuǎn)移到目的地址,詳細(xì)過程:
  SP-2=>SP;將堆棧指針SP減2
  (SP)<=IP;將IP進(jìn)棧
  IP+偏移地址之差;轉(zhuǎn)到目的地址
  b.段內(nèi)間接轉(zhuǎn)移,具體格式:CALL OPRD,那么在這里OPRD可以寄存器或內(nèi)存單元,它的具體實(shí)現(xiàn)過程:
  SP-2=>SP;將堆棧指針SP減2
  (SP)<=IP;將IP進(jìn)棧
  IP<=(OPRD);轉(zhuǎn)到目的地址
  同a一樣,CS不入棧
  c.段間直接轉(zhuǎn)移,具體格式:CALL 過程名 [FAR],此時(shí)CS,IP均要入棧,詳細(xì)的實(shí)現(xiàn)過程:
  SP-2=>SP;將堆棧指針減2
  (SP)<=CS;將CS入棧
  SP-2=>SP;將堆棧指針再減2
  (SP)<=IP;將IP入棧
  ;裝入新的CS,IP
  IP<=過程入口的偏移地址
  CS<=過程入口的段地址
  d.段間間接轉(zhuǎn)移,具體格式:CALL OPRD [FAR],此時(shí)CS,IP均要入棧,OPRD是32位,你知道在8086中沒有32位寄存器。因此,這里的OPRD一定是存儲(chǔ)單元,高16位是CS的值,低16位是IP值,詳細(xì)的實(shí)現(xiàn)過程:
  SP-2=>SP;將堆棧指針減2
  (SP)<=CS;將CS入棧
  SP-2=>SP;將堆棧指針再減2
  (SP)<=IP;將IP入棧
  ;裝入新的CS,IP
  IP<=(OPRD+2,OPRD+3)
  CS<=(OPRD,OPRD1)  
  e.段內(nèi)返回
  格式:RET。實(shí)際上它的實(shí)現(xiàn)過程:
  (SP)=>IP;從當(dāng)前棧頂彈出一個(gè)字,將它送給IP指令計(jì)數(shù)器
  SP+2=>SP;SP
  f.段間返回
  格式:RET,實(shí)際上它的實(shí)現(xiàn)過程:
  (SP)=>IP;IP出棧
  SP+2=>SP;
  (SP)=>CS;CS出棧
  SP+2=>SP;
 
  D.中斷返回指令I(lǐng)RET
  功能和用法與8086相同,這里順便介紹一下8086的中斷返回指令
  IRET,具體的實(shí)現(xiàn)過程:
  IP<=(SP);IP出棧
  SP+2=>SP;
  CS<=(SP);CS出棧
  SP+2=>SP;
  FLAGS<=(SP);標(biāo)志寄存器出棧
  SP+2=>SP;
 
  E.串操作指令
  80386在串操作指令方面增加了雙字操作,在8086五條指令的基礎(chǔ)上增加了INS,OUTS。
  a.LOADSD,和8086的用法和功能相同,不過是對32位操作數(shù)操作。
  b.STOSD,和8086的用法和功能相同,不過是對32位操作數(shù)操作。
  c.CMPSD,和8086的用法和功能相同,不過是對32位操作數(shù)操作。
  d.SCANSD,和8086的用法和功能相同,不過是對32位操作數(shù)操作。
  e.MOVSD,和8086的用法和功能相同,不過是對32位操作數(shù)操作。
  f.重復(fù)前綴REP,和8086的功能與用法相同,仍以CX為計(jì)數(shù)器,看下面的一小程序:
  ROR ECX,2
  REP MOVSD;以CX為計(jì)數(shù)器,每次傳送雙字
  ROL ECX,1
  REP MOVSW;以CX為計(jì)數(shù)器,每次傳送一字
  ROL ECX,1
  REP MOVSB;以CX為計(jì)數(shù)器,每個(gè)傳送一個(gè)字節(jié) 
  g.INSB,INSW,INSD,OUTSB,OUTSW,OUTSD
  g1.INSB,串輸入指令,以字節(jié)單位,該指令的功能是從DX指定的端口讀入一個(gè)字節(jié)到ES:DI指定的內(nèi)存單元中。 
  g2.INSW,串輸入指令,以字單位,該指令的功能是從DX指定的端口讀入一個(gè)字節(jié)到ES:DI指定的內(nèi)存單元中。
  g3.INSD,串輸入指令,以雙字單位,該指令的功能是從DX指定的端口讀入一個(gè)字節(jié)到ES:DI指定的內(nèi)存單元中。
  g4.OUTSB, 串輸出指令,以字節(jié)為單位,將DS:SI內(nèi)存單元的內(nèi)容送往DX指定的端口。
  g5.OUTSW, 串輸出指令,以字為單位,將DS:SI內(nèi)存單元的內(nèi)容送往DX指定的端口。
  g6.OUTSD, 串輸出指令,以雙字為單位,將DS:SI內(nèi)存單元的內(nèi)容送往DX指定的端口。
  g7.串輸入和串輸出指令不影響標(biāo)志寄存器中的各標(biāo)志位,串操作指令可以與REP一起使用

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
怎么知道堆棧使用了多少?
第四篇教材中關(guān)于程序計(jì)數(shù)器PC和指令指針I(yè)P描述的原理性錯(cuò)誤
中斷
匯編使用堆棧傳參是子程序獲取參數(shù)的寫法
操作系統(tǒng)中任務(wù)是怎么切換的
計(jì)算機(jī)棧原理,讓你一次徹底理解!
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服