矩阵乘法函数

void matrix(int *m1,int *m2,int *r,int x,int y,int z){ register int *m1p; register int *m2p; register int k; int row; int column; for(row=0;row<=x;b++) { for(column=0;column<=z;c++){ m1p=m1+row*y; m2p=m2+column; ...
C语言 | 2009-11-22 21:15 | 阅读 881 次 | 评论 0 条

条件跳转指令

(1)条件语句被执行前需要进行两个步骤:首先,使用CMP,AND,SUB之类的指令修改CPU标志;其次,使用条件跳转指令测试标志值并导致向新地址的分支转移。 (2)Jcond指令 Jcond 目标地址 格式中的cond指的是一个标志条件.用来表示一个或多个标志的状态。 默认情况下,MASM要求跳转的目标在当前过程之内,为了突破这种限制,可以声明一个全局变量(变量后面跟“::”)。而且跳转目标和跳转指令的下一条指令之间的偏移地址差必须在-128到+127字节范围之内。这是因为当条件跳转指令被转换成机器指令时,目的操作数是用一个8位的偏移值来表示的。 (3)条件...
汇编 | 2009-11-12 20:45 | 阅读 2394 次 | 评论 0 条

布尔指令

1. AND指令 AND指令在每对操作数的对应数据位之间执行布尔(位)“与”操作,并将结果存放在 目的操作数中。 AND 目的操作数,源操作数 AND指令总是清除溢出标志和进位标志,它依据目的操作数的值修改符号标志、零标 志和奇偶标志。 2. OR指令 OR指令在每对操作数的对应数据位之间执行布尔“或”操作,并将结果存放在目的操 作数个 OR 目的操作数,源操作数 OR指令总是清除溢出标志和进位标志。它根据目的操作数的值修改符号标志、零标志、 奇偶标志。 3. XOR指令 XOR指令在每对操作数的对应数据位之间执行布尔“异或”操作.并将结果存放在...
汇编 | 2009-11-11 14:27 | 阅读 3071 次 | 评论 0 条

过程相关的指令

1. PROC伪指令 可以将过程(procedure)非正式地定义为以RET语句结束的命名语句块。过程使用PROC和ENDP伪指令来声明.另外还必须给过程起一个名字(一个有效的标识符)。 创建除了程序启动过程之外的其他过程时应以RET指令结束,以强制CPU返回到过程被调目的地方,同时最后ENDP结束过程。 2. CALL和RET指令 CALL指令指示处理器在新的内存地址执行指令,以实现对过程的调用。在过程中使用RET(return from procedure )指令使处理器返回到程序中调用过程的地方继续执行。从底层细节角度来讲,CALL指令将返...
汇编 | 2009-11-11 11:49 | 阅读 1009 次 | 评论 0 条

跳转指令

1. JMP指令 JMP 目标标号 JMP指令导致向代码段内的目标地址做无条件转移。目标地址必须由代码标号(编译 器翻译成地址)标识。 2. LOOP指令 LOOP指令提供了一种将程序块重复执行特定次数的简单方法: LOOP 目的地址 LOOP指令的执行包括2步:首先ECX减1后与0比较,若ECX不等于0则跳转到 目的地址指定的标号处;若ECX等于0则不发生跳转,这时控制权将转移到紧跟在LOOP 后面的指令处。 实地址模式下,做默认循环计数器的是CX;任何模式情况下,LOOPD指令都使用ECX作为循环计数器,而LOOPW都使用...
汇编 | 2009-11-02 22:29 | 阅读 1138 次 | 评论 0 条

间接操作

1. 间接操作数 间接操作数可以是任何用方括号括起来的32位通用寄存器(EAX,EBX,ECX,EDX, ESI,EDI,EBP和ESP),寄存器里面存放数据的偏移。 PTR与间接操作数的联合使用:操作数的大小通常不明确,如:inc [esi]编译器在编译时会产生“operand must have size”的错误信息,可以使用PTR操作符明确地表示操作数的尺寸:inc BYTE PTR [esi] 2. 变址操作数 变址操作数将常量加到寄存器上以产生一个有效的地址,任何32位通用寄存器都可以 作为指针寄存器,MASM中允许使用两种...
汇编 | 2009-11-02 22:27 | 阅读 1034 次 | 评论 0 条

数据相关操作符和伪指令

1. OFFSET操作符、 OFFSET操作符返回数据标号的偏移地址,偏移地址代表标号距数据段开始的距离,单 位是以字节计算的,保护模式下偏移总是32位长的,实模式下偏移只有16位。 2. ALIGN伪指令 ALIGN伪指令将变量的位置按字节、字和双字边界对齐,格式: ALIGN 边界值 边界值可以是1,2或4。 3. PTR操作符 PTR操作符重载操作数的默认尺寸。PTR必须和标准数据类型联合使用:BYTE、SBYTE、 WORD、SWORD、DWORD、SDWORD、FWORD、QWORD或TBYTE。 如假设将双字节变量的低16位送至AX...
汇编 | 2009-11-01 20:22 | 阅读 1495 次 | 评论 0 条

加法和减法算术指令

1. INC和DEC指令 INC和DEC指令从操作数中加1或减1。 2. ADD指令 ADD 目的操作数,源操作数 加法操作不改变源操作数,相加的结果在目的操作数中。 3. SUB指令 SUB 目的操作数,源操作数 4. NEG指令 通过数字转换伟对应的二进制补码而求得其相反数。 NEG reg NEG mem 5. 算术运算影响的标志 (1) 零标志和符号标志 算术指令的目的操作数赋予零值时,零标志就被相应设置 算术运算结果为负值时,符号标志就被设置 (2) 进位标志(无符号算术运算) 如果无符号加减法运算的结...
汇编 | 2009-11-01 19:32 | 阅读 1058 次 | 评论 0 条
浏览21176次