again 1: MOV EDX.O DⅣ EBX ADD DL 30H PUSH DX NC CX CMP EAX.O UNZ again 1 disp: POP AX CALL disps LOOP disp 1 MOV AL 退出 4.1.2
4.1.2 again1:MOV EDX,0 DIV EBX ADD DL,30H PUSH DX INC CX CMP EAX,0 JNZ again1 disp1: POP AX CALL disps LOOP disp1 MOV AL,'.' 退 出
CALL disps MOV EAX fract FSTCW status XOR status. cooh FLDCW status FLD fract FXTRACT FSTP fract FABS FISTP whole MOV∨ ECX. Whole MOV EAX fract 退出 4.1.2
4.1.2 CALL disps MOV EAX,fract FSTCW status XOR status,0C00h FLDCW status FLD fract FXTRACT FSTP fract FABS FISTP whole MOV ECX,whole MOV EAX,fract 退 出
SHL EA×.9 RCR EAX. CL again2: MUL EBX PUSH EAX XCHG EAXEDX ADD AL 30H CALL dIsps POP EAX CMP EAX.O UNZ again2 RET END 退出 4.1.2
4.1.2 SHL EAX,9 RCR EAX,CL again2:MUL EBX PUSH EAX XCHG EAX,EDX ADD AL,30H CALL disps POP EAX CMP EAX,0 JNZ again2 RET END 退 出
这就是一个近程模块的设计及调用的实例,要明白这 个问题,那么就要知道简化的段定义,在. model sm模式 下段的缺省属性,其规定如表43所示 退出 4.1.2
4.1.2 这就是一个近程模块的设计及调用的实例,要明白这 个问题,那么就要知道简化的段定义,在.model small模式 下段的缺省属性,其规定如表4.3所示。 退 出
4.1.3远程模块的设计及调用 远程模块的设计及调用实际上就是主模块与子模块的 罘仁辑户数糯轮操两尽则 逻辑段,也 是若代码段不在同一段,子模块就要设计远程的, 蓋数据段也不在同逻辑段,在内存变量的交叉访问时, 就簍用不同的段寄存器来指向不同的薮据段 二是在标号与变量在用 public、 extrn声明时,该语 句最好放在源程序的最前面,以免引起交叉访问的时,子 模块与变量无法正确的调用与引用。下面我们通过举例说 明 退出
4.1.3 远程模块的设计及调用 远程模块的设计及调用实际上就是主模块与子模块的 代码段不在同一逻辑段,数据段也可以在同一逻辑段,也 可不在同一逻辑段。用户只需把握两个原则: 一是若代码段不在同一段,子模块就要设计远程的, 若数据段也不在同一逻辑段,在内存变量的交叉访问时, 就要用不同的段寄存器来指向不同的数据段。 二是在标号与变量在用public、extrn声明时,该语 句最好放在源程序的最前面,以免引起交叉访问的时,子 模块与变量无法正确的调用与引用。下面我们通过举例说 明。 退 出