摘要:1、转移指令修改ip或修改ip和cs的指令。jmp short 标号jmp near ptr 标号jcxz 标号loop 标号等几种汇编指令,它们对IP的修改是根据转移目的地址和转移起始地址之间的位移来进行。2、堆栈操作PUSH SRC: SP的值减2,然后把源操作数SRC送入由SP所指的栈顶POP DST: 先把SP所指的字数据送至目的操作数DST,然后SP值加23、call、retret: (IP)=((SS)*16 + (SP)), (SP)=(SP)+2,相当于pop IPretf: (IP)=((SS)*16 + (SP)), (SP)=(SP)+2, (CS)=((SS)*16 +
阅读全文
文章分类 - 汇编语言
摘要:一、调用子程序时信息的保护与恢复方法(1) 在子程序中进行SUBROUTEPROCPUSHAXPUSHBXPUSHCX...POPCXPOPBXPOPAXRETSUBROUTEENDP(2) 在主程序中进行...PUSHAXPUSHBXPUSHCXCALLSUBROUTEPOPCXPOPBXPOPAX...二、利用堆栈传递参数及堆栈的修正;将一组BCD数转换成16位二进制数;主程序STACKSEGMENTSTACKDB256DUP(?)STACKENDSDATASEGMENTBCD1DB07H,06H,07H,02H,03HLENG1DW5RESULTDW?DATAENDSCODEMSEGME
阅读全文
摘要:标志位:OF 溢出(是/否) OV OVerflow NV Not oVerflow DF 方向(减量/增量) DN DowN UP UP IF 中断(允许/关闭) EI Enable Interrupt DI Disable Interrupt SF 符号(负/正) NG NeGative PLPLus ZF 零(是/否) ZR ZeRo NZ Not Zero AF 辅助进位(是/否) AC Auxiliary Carry NA Not Auxiliary PF 奇偶(是/否) PE Parity Even PO Parity Odd CF 进位(是/否) CY CarrY NC Not
阅读全文
摘要:一、字符串处理指令(1) lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI(2) stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI(3) movsb、movsw:把DS:SI指向的存储单元中的数据装入ES:DI指向的存储单元中,然后根据DF标志分别增减SI和DI(4) scasb、scasw:把AL或AX中的数据与ES:DI指向的存储单元中的数据相减,影响标志位,然后根据DF标志分别增减SI和DI(5) cmpsb、cmpsw:把DS:SI指向的存储单元中的数据与ES:DI指向的存储单元中的数据
阅读全文
摘要:(1) 代码段中使用数据编程计算8个数据的和,结果保存在ax中。代码如下:codesegmentassumecs:codedw0123H,0456H,0789H,00bcH,00efh,0667h,072fh,0990Hmovbx,0movax,0movcx,8s:addax,cs:[bx]addbx,2loopsmovax,4c00hint21hcodeendsend用debug调试跟踪如下:Debug跟踪,修改ip指向代码,让程序合法运行:修改源代码,指明程序入口,使程序合法化:codesegmentassumecs:codedw0123H,0456H,0789H,00bcH,00efh,
阅读全文
摘要:(1) 编辑 (2) 编译 (3) 连接 (4) 跟踪运行 下载:masm 5.0
阅读全文
摘要:(1) Debug及常用功能 Debug是一种实模式(8086方式)程序的调试工具。使用它可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。R命令查看、改变寄存器内容D命令查看内存内容E命令改写内存内容U命令将内存中的机器指令翻译成汇编指令T命令执行一条机器指令A命令以汇编指令的格式在内存中写入一条机器指令(2) R命令查看、改变寄存器内容(3) D命令查看内存中的内容(4) E命令改写内存中的内容 (5) E指令向内存中写入机器码,U指令查看内存中机器码含义,T指令执行内存中的机器码 (6) A指令以汇编指令的形式在内存中写入机器码
阅读全文