游戏机数据传输指令大全.doc_第1页
游戏机数据传输指令大全.doc_第2页
游戏机数据传输指令大全.doc_第3页
游戏机数据传输指令大全.doc_第4页
游戏机数据传输指令大全.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

游戏机数据传输指令大全它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1.通用数据传送指令.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)2.输入输出端口传送指令.INI/O端口输入.(语法:IN累加器,端口号DX)OUTI/O端口输出.(语法:OUT端口号DX,累加器)输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时,其范围是0-65535.3.目的地址传送指令.LEA装入有效地址.例EADX,string;把偏移地址存到DX.LDS传送目标指针,把指针内容装入DS.例DSSI,string;把段地址:偏移地址存到DS:SI.LES传送目标指针,把指针内容装入ES.例:LESDI,string;把段地址:偏移地址存到ESI.LFS传送目标指针,把指针内容装入FS.例:LFSDI,string;把段地址:偏移地址存到FSI.LGS传送目标指针,把指针内容装入GS.例:LGSDI,string;把段地址:偏移地址存到GS:DI.LSS传送目标指针,把指针内容装入SS.例:LSSDI,string;把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF标志寄存器传送,把标志装入AH.SAHF标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志出栈.PUSHD32位标志入栈.POPD32位标志出栈.二、算术运算指令ADD加法.ADC带进位加法.INC加1.AAA加法的ASCII码调整.DAA加法的十进制调整.SUB减法.SBB带借位减法.DEC减1.NEC求反(以0减之).CMP比较.(两操作数作减法,仅修改标志位,不回送结果).AAS减法的ASCII码调整.DAS减法的十进制调整.MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结果回送:商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令AND与运算.OR或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右移.(=SHR)ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时,可直接用操作码.如SHLAX,1.移位1次时,则由寄存器CL给出移位次数.如MOVCL,04SHLAX,CL四、串指令DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数器.AL/AX扫描值.D标志0表示重复操作中SI和DI应自动增量;1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是LODS的逆过程.REP当CX/ECX0时重复.REPE/REPZ当ZF=1或比较结果相等,且CX/ECX0时重复.REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX0时重复.REPC当CF=1且CX/ECX0时重复.REPNC当CF=0且CX/ECX0时重复.五、程序转移指令1无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.2条件转移指令(短转移,-128到+127的距离内)(当且仅当(SFXOROF)=1时,OP1JA/JNBE不小于或不等于时转移.JAE/JNB大于或等于转移.JB/JNAE小于转移.JBE/JNA小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE大于转移.JGE/JNL大于或等于转移.JL/JNGE小于转移.JLE/JNG小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ等于转移.JNE/JNZ不等于时转移.JC有进位时转移.JNC无进位时转移.JNO不溢出时转移.JNP/JPO奇偶性为奇数时转移.JNS符号位为0时转移.JO溢出转移.JP/JPE奇偶性为偶数时转移.JS符号位为1时转移.3循环控制指令(短转移)LOOPCX不为零时循环.LOOPE/LOOPZCX不为零且标志Z=1时循环.LOOPNE/LOOPNZCX不为零且标志Z=0时循环.JCXZCX为零时转移.JECXZECX为零时转移.4中断指令INT中断指令INTO溢出中断IRET中断返回5处理器控制指令HLT处理器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位标志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置中断允许位.CLI清中断允许位.六、伪指令DW定义字(2字节).PROC定义过程.ENDP过程结束.SEGMENT定义段.ASSUME建立段寄存器寻址.ENDS段结束.END程序结束.七、寄存器1.Registerusagein32bitWindowsFunctionparametersarepassedonthestackaccordingtothecallingconventionslistedonpage13.Parametersof32bitssizeorlessuseoneDWORDofstackspace.Parametersbiggerthan32bitsarestoredinlittle-endianform,i.e.withtheleastsignificantDWORDatthelowestaddress,andDWORDaligned.Functionreturnvaluesarepassedinregistersinmostcases.8-bitintegersarereturnedinAL,16-bitintegersinAX,32-bitintegers,pointers,andBooleansinEAX,64-bitintegersinEDX:EAX,andfloating-pointvaluesinST(0).Structuresandclassobjectsnotexceeding64bitssizearereturnedinthesamewayasintegers,evenifthestructurecontainsfloatingpointvalues.Structuresandclassobjectsbiggerthan64bitsarereturnedthroughapointerpassedtothefunctionasthefirstparameterandreturnedinEAX.Compilersthatdontsupport64-bitintegersmayreturnstructuresbiggerthan32bitsthroughapointer.TheBorlandcompileralsoreturnsstructuresthroughapointerifthesizeisnotapowerof2.RegistersEAX,ECXandEDXmaybechangedbyaprocedure.Allothergeneral-purposeregisters(EBX,ESI,EDI,EBP)mustbesavedandrestorediftheyareused.ThevalueofESPmustbedivisibleby4atalltimes,sodontpush16-bitdataonthestack.Segmentregisterscannotbechanged,noteventemporarily.CS,DS,ES,andSSallpointtotheflatsegmentgroup.FSisusedforathreadenvironmentblock.GSisunused,butreserved.Flagsmaybechangedbyaprocedurewiththefollowingrestrictions:Thedirectionflagis0bydefault.Thedirectionflagmaybesettemporarily,butmustbeclearedbeforeanycallorreturn.Theinterruptflagcannotbecleared.Thefloating-pointregisterstackisemptyattheentryofaprocedureandmustbeemptyatreturn,exceptforST(0)ifitisusedforreturnvalue.MMXregistersmaybechangedbytheprocedureandifsoclearedbyEMMSbeforereturningandbeforecallinganyotherprocedurethatmayusefloating-pointregisters.AllXMMregisterscanbemodifiedbyprocedures.RulesforpassingparametersandreturnvaluesinXMMregistersaredescribedinIntelsapplicationnoteAP589SoftwareConventionsforStreamingSIMDExtensions.AprocedurecanrelyonEBX,ESI,EDI,EBPandallsegmentregistersbeingunchangedacrossacalltoanotherprocedure.2.RegisterusageinLinuxTherulesforregisterusageinLinuxappeartobealmostthesameasfor32-bitwindows.RegistersEAX,ECX,andEDXmaybechangedbyaprocedure.Allothergeneral-purposeregistersmustbesaved.Thereappearstobenoruleforthedirectionflag.FunctionreturnvaluesaretransferredinthesamewayasunderWindows.Callingconventionsarethesame,exceptforthefactthatnounderscoreisp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论