汇编及MASM参考手册.pdf

所需积分/C币:50 2011-10-25 20:31:54 1.11MB PDF
收藏 收藏
举报

汇编及MASM参考手册 intel指令集 BIOS及MS-DOS中断附录
附录A江编编译器的安装和使用 487 续表〕 批处理命令 说明 ML-zic-Ff埚1.asm 调用 Microsoft的汇编编译器 MLEXE) IF errorlevel I goto terminate 如果上面的命令产生丁错误,则跳转到名为 emirate的标 号处〔文件的最后一行 LNK3%1 obj Irvine32]bkme321ib调用 Microsoft的位链接器,这里使用了两个库文件 /SUBSYSTEM CONSOLE DEBUG Irvine 32. ib F4 Kernel321ib IF errorLevel i goto terminate 如果上面的命令产生了错误,那么跳转到 terminata标号 DR%↓.* 当源文件被绵译链接后,列出编译器和链接器创建的文 terminate 该标号由前面的co1o语句使用 你拷贝的make32bat文件中的编译器和链接器的目录名可能不同,这是由安装目录不同造成 的。例如如果编译器在D认 pps Masm615目录中,下面三条批处理命令就要相成改变 SET FATH=D: Apps\Masm615 SET INCLUDE=D: \Apps \Masm615\include SET LIE=3: \Apps\Masm615lib A.3编译和链接16位实地址模式程序 使用make6命令可以编译和链接1位实地址模式程序。例如,奶果源代码的文件名为 Addsub am,在 MS-DOS提示符下可以运行下面的命令 ake15再das山b 在运行make6命令之前.在源代码文件的同一目录中必须有make6at文件的一份拷 贝。读者可从编译器的安装月录中拷贝msk16bat文件。 在MS-DO8提示符下鍵入如下命令可以运行 Code view调试器来对 Addsub程序进行调试; C:\Mast615\runcv Addsub Code view将 AddSub,e装人内存,显示其源代码(来自 AddSub. asn)并允许你跟踪和调试程序 的执行过程。使用 Code view之前请阅读本书Web站点上的 Code view使用教程 16位链接器只能识别少于8个字符(包括扩展名)的文件名,而且程序路極中的目录 名也不能超过8个字符长 表A2对 makel6hat中包含的命令进行了解释同样,左边列中的两条命令(REM和LNK) 折行显示是由于表格的长度限制。在批处理文件中它们只占·行。关于传递给汇编编译器和链接 器的命令行参数的信息请参考附录D 表A2mae16bot批处理文件的说明 批处理命令 说阴 REM Makelo bat, for assembling and 任何以REM开头的行都是注释行,用于对批处理文件加以 linking Real-address mode programs 说明。REM行不执行 PATH C: Masm615 将路径设管为 C: asIm615,这使操作系统能够定位ML和 LⅠNK程序 488 Intel汇鍋語言程序设计〔第四版) 续表〕 批处理命令 说明 SET INCLUDE-C. Masm6l5 INCLUDE设置 INCLUDE环境变量,这允许源代码文件中的 INCLLDE 伪指令可以定位指定的文件,例我们使用的 Irvine6inc 文件 set LIE=C- aSmo1sB 设置LB环境变量,以允许链接程序定位库文件,例如 vinetlit ML/lg耳 2i ol.asm 週用 Microsofe的汇編译器(ML,EXE IF errorlevel l goto terminate 如果上面的命令产生了错误,则跳转到名为 terminate的标号 处(文件的最后一行) LINK/olog/ CODEVIEW%1,NUL,调用 Microsoft的1位链按器这里使用了库文件 Yimei6i Iryune1G IF errorLevel I goto terminate 如果上面的命令产生了错误,那么跳转到 terminate示号 D%1 当源文件被编译链接后,列出编译器和链接器创建的文件 terminate 该标号由前面的GOTO语句使用 附录 B ntel指令集 本章要点 ●B1简介 B标志 B.1.2指令描述及格式 B2指令集 B1简介 本附录是 Intel A32系列处理器所有实地址模式指令的速查手册。 B11标志 每条指令的说明中都包含一系列用于描述指令奶何影响CPU标志的方格,其中的每个标志用 个字母表示: O滥出标志 S符号标志 P奇偶标志 D方向标志 z零标志 C进位标志 I中断标志 A辅助进位标志 在方格中,使用下面的号来表示每条指令是以何种方式影响标志的 设置标志 清除标志 标志值的改变无法预测 根据与该标志相联系的特定规则改变标志值 例如,下面的CP标志图摘某条指令的描述: o FI s A P 从图中可:潜出标志、符号标志、零标志和奇偶标志将改变为未知值,辅助进位标志和进 位标志将根据与这些标志值相联系的规则进行修改,方向标志和中断标志不会改变。 B1,2指令描述及格式 当引用源操作数和目的操作数时,我们使用 Intel80x86指令的自然顺序,即其中第一个操作 数是目的操作数,第二个操作数是源操作数。例如在MOv指令中,目的操作数将被赋以源操作 数的一份拷贝: MoV匡的,源 490 Intel汇编语言程序设计(第四版 一条揹令可能有多种格式,衣B1是在指令格式中使用的符号的列表。在单条指令描述中, 使用符号〔IA32)表示一条指令或其变例只能用于JA-32系列处理器(Ie386以上),与之类似 符号(80286)表小至少要使用80286处理器 寄存器符号姒E)CX,E,BD,E)SP(E)BP和(EP等分别用于使用32位寄存器的A32 处理器和使用16位寄存器的早期处理器 表B1指令格式中使用的符号 符号 描述 eg 卜外8位、6或32位通川寄存器牛的一个:AH,AL,BH,BL,CH CL A BX CX DX. sI. Dl BP. SP, EAX. EBX ECX. ElX EST,FDI,FRP和FSP 通用寄器,以其包含的数据位的位数来标识 16位段寄存器(CS、Ds,ES,SS.FS ET] AL,AK或EAK 快用江何标在内行寻址方式的内存操作数 mem?. meml6. me.32 内存操作数、数字指明了操作数的位数 代码段内距当前位置-128到127字节范围之内的地址 当前代码段内的位置,以标号标识 farlabel 外部代码段内的位置,以标号标识 cirITh 立操作数 mm&, imm 16.im 32 立即操作数,数宇指明了操作数的位数 struction 条[n汇编语言指令 B2指令集 AAA加法后进行ASC!调整(ASc! Adjust After Addition D 1 S Z A P C 2|?|?| 调整两个ASC数字相加之后在AL中的结果如果A的低4位大于9或辅助进位标忐等 于1,则A加6并清除AL的高4位,同时AH加I,设置进位标志和辅助进位标志;否 测,直接清除AL的高4位,清除进位标志和辅助进位标志 指令格式 AA AAD 在除法前进行ASC调整{ ASCII Adjust Before Divesion O S ZA P C 工·|·T? 将AH和AL中未压缩的BCD数字转换成二进制数值存放在AL中AH清零,为V指令 做好准备 指令格式 AA→ 附录 B Intel指令集 91 AAM 乘法后进行ASCH调整( AsCI Adjust After Multiply) OD I S I A P C 词整两个末压缩的BCD数字相乘之后A中的结果,即将二选制值调整为非压缩的ASC∏ 格式,调整力法是AL除以0Ah,得到的商存放在AH中,余数存放在AD中 指令格式 AAMI AAS 减法后进行ASCl调整( ASCl Adjust After Subtraction) 0 D ap c 调整AsC减法之后A中得到的结果。如果AL的低4位大于9或辅助进位标忐等于1, AL减6,清除AL的高4位,AH减I,设置进位标忐和辅助进位标志。否则,直接清除AL 的高4位,清除进位标志和辅助进位标志 指令整式: ADC 带进位加〔 Add carry O D S 7 A P C 将源操作数、目的操作数和进位标志相加。操作数人必须相岡 指令格式 ADc reg reg ADC reg, imm ADC nem, feg 即mm ADC reg, em Abc acc山m,工am ADD 加(Add) O DI SZ A P C 源操作数与目的操作数相加,绪果存储在目的操作数中。操作数尺寸必须相同 指令格式: ADD¥eg,xeg ADD reg,立Rm ATD mem, fes ADD met,⊥m AcD 2eg, heir ABD accu, i mm 92 Intel汇编语言程庐设计〔第四版) AND辑与 Logical AND 1 S2 AP C 日的操作数中的每个数据位与源操作数中的对应位进行与操作 指令格式: AND reg,reg ADD re守,mm AN en re ADD mem imm ANYe白「me们 ADp accum irr BOUND检查数组边界(B0286) Check Array Bound) 0 D I aaP C 检查一个有符号的指针值是否在数组边界之内在80286处理器上,目的操作数可以是任何 包含要检查的指针的16位寄存器,源操作数必须是32位内存操作数,其高字和低字分别包 含数组的上边界指针值和下边界指针值。在IA32上、目的操作数也可以是3寄存器, 源操作数可以是6位内存操作数。如果待检查的指针值在数组边界之外,则产生界常 指令格式: BOUNI reg1 5, mem32 BOU№xeg32;四em54 BSF 位扫描(Bsca)(32) BSR O D I s Z A P C 扫描操作数并寻找第一个被设置的数据。如果找到则清除零标志,目的操作数存放第一个 被设置位的位号(索引奶果没有找到被设置的数据位则ZF=1。BSF指令按照从位0到 最高位的顺序扫描。BSR指令按从最高位到位0的顺序扫描 指令格式(以BSF为恻,适用于BS和SR,后亩有些指令的描述方法类似,不再重复说 明〕 BSF regi,I/mI6 BSF reg32,r/r32 BSWAP宇节变换BSMp)(A32) O DI SZ A P C 反转32位月的寄存器中的竽节顺序 指令格式 BSHAP reg32 附录 B Intel指令集 493 BT 位测试( Bit tests)(|A32) BTC S A P C BTR BTS 将指定位n)拷贝入进位标志中,目的操作数包含要操作的位号。BT将源操作数的位n转 贝到进位标志中;BTC将源操作数的位n贝到进位标志中并将位n变反;BTR将源操作 数为位n拷贝到进位标志中并将位n清除;BIS将源操作数的位n拷贝到进位标志中并将 位n置 指令格式 BT r/ m16, irma BT E/m16, 16 BT r/m32, imma BT I/ m32, r32 cALL调用过程( Call a proedure A C 将下一条指令的地址压入雄找#将控制转移到目的地址。如果过程是近过程(在同一个段 内)、指令只压人下一条指令的偏移;否则,下一条指令的段和偏移都被压入堆栈 指令格式 CALL nearlabe f CALI fIcml6 ALLa⊥ak日 CALL m32 cAT上eg CEW|字节护展到字 Convert Byte to word S Z A P 将AL中的符号位扩展到AH中 指令格式: CEA cDQ双字扩展到8字节 Convert Doubleword to quadword)A32) O D S Z A P C 「T上□ 将卫AX中的符号位扩展到EDX中 指令格式 494 Intel江編语言程序设计(第四版〕 CLC 清賒进位标志 Clear Carry F|ag 0 清除进位标志 指令格式 LC CLD 清除方向标志( Clear Direction Flag 0 清除方向标志。此时,字符串指令自动增加(ESI和FD的值 指令格式: CLD CL 清除中断棕志( clear Interrupt Flag) O DI S Z A P C 清除中断松志。禁止可屏蔽硬件中断,直到执行一条8T指令为 指令格式: CLI CMC 进位标志取反( Complement Carry Flag I S ZA P C 当前迸位标志值变反 指令格式 Cve CMP 比较( Compare o D I S Z A P _**· 比较目的操作数和源操作数,瞼含执行(相应设置标志位,但不改变操作数)从源操炸数中 减掉目的操作数的减法操作 指令格式: CME reg, reg CMe res, In CMP em, reg ChP mem ie CME reg, mem Cmp accu,⊥m

...展开详情
试读 62P 汇编及MASM参考手册.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    ZhongWenhui_1995 不错,很好用
    2015-07-20
    回复
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    汇编及MASM参考手册.pdf 50积分/C币 立即下载
    1/62
    汇编及MASM参考手册.pdf第1页
    汇编及MASM参考手册.pdf第2页
    汇编及MASM参考手册.pdf第3页
    汇编及MASM参考手册.pdf第4页
    汇编及MASM参考手册.pdf第5页
    汇编及MASM参考手册.pdf第6页
    汇编及MASM参考手册.pdf第7页
    汇编及MASM参考手册.pdf第8页
    汇编及MASM参考手册.pdf第9页
    汇编及MASM参考手册.pdf第10页
    汇编及MASM参考手册.pdf第11页
    汇编及MASM参考手册.pdf第12页
    汇编及MASM参考手册.pdf第13页
    汇编及MASM参考手册.pdf第14页
    汇编及MASM参考手册.pdf第15页
    汇编及MASM参考手册.pdf第16页
    汇编及MASM参考手册.pdf第17页
    汇编及MASM参考手册.pdf第18页
    汇编及MASM参考手册.pdf第19页

    试读已结束,剩余43页未读...

    50积分/C币 立即下载 >