2约定存储器法 约定存器法是在存储器中专门指定一些单元存放入参数和出口参 数。在转子程序 前,主程序用数据传送指令将入口参数存入入口参数的存储单元中。调 用子程序后,子程序按 照约定从入口参数存储单元中取出这些参数进行处理。子程序完成处理 将处理结果送入指定 的出口参数存储单元中,返回后主程序可从这些特定存储单元中获取需 要的处理结果。 约定存储器法传送速度比约定寄存器法要慢些,适合于传递参数较多 的情况。 例7-5】将例74改用约定存储器法处理 与例74比较只需将欲传送的STR和STI2的首地址及STR的长度分别送 入存储单元PARA1、PARA2和PARA3程序如下 DATA SEGMENT STRI DB AB1239CDEF COUNT EQU $-STR1 STR2 DB COUNT +1 DUP( PARA1DW?;定义约定的存储器单元
2.约定存储器法 约定存储器法是在存储器中专门指定一些单元存放入口参数和出口参 数。在转子程序之 前,主程序用数据传送指令将入口参数存入入口参数的存储单元中。调 用子程序后,子程序按 照约定从入口参数存储单元中取出这些参数进行处理。子程序完成处理, 将处理结果送入指定 的出口参数存储单元中,返回后主程序可从这些特定存储单元中获取需 要的处理结果。 约定存储器法传送速度比约定寄存器法要慢些,适合于传递参数较多 的情况。 【例7-5】将例7—4改用约定存储器法处理。 与例7—4比较只需将欲传送的STRl和STIl2的首地址及STRl的长度分别送 入存储单元PARA1、PARA2和PARA3程序如下: 中。 DATA SEGMENT STRl DB 'AB1239CDEF COUNT EQU $-STR1 STR2 DB COUNT+1 DUP(?) PARA1 DW ?;定义约定的存储器单元
PARA2 DW? PARA3 DW DATA ENDS STACK SEGMENT PARA STACK STACK DB 10ODUP( STACK ENDS CODE SEGMENT ASSUME CS: CODE DS: DATA, ES: DATA MAIN PROC FAR/主程序 BEGIN PUSH DS MOVA×,0 PUSH AX MOV AX DATA MOV DS, AX MOV ES, AX LEA SI STR1 MOV RARA1,SI;PARA1中为字符串S1的首地址 LEA DI STR2 MOV PARA2,DI:PARA2保存STR2的首地址 MVO PARA3, COUNT;PARA3保存STR1的字符个数 CALL FIND;调用子程序 MOV DX, OFFSET STR2;显示字符串S2
PARA2 DW ? PARA3 DW ? DATA ENDS STACK SEGMENT PARA STACK 'STACK' DB 100DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA MAIN PROC FAR;主程序 BEGIN PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,STR1 MOV RARA1,SI;PARA1中为字符串S1的首地址 LEA DI,STR2 MOV PARA2,DI;PARA2保存STR2的首地址 MVO PARA3,COUNT;PARA3保存STR1的字符个数 CALL FIND;调用子程序 MOV DX,OFFSET STR2;显示字符串S2