Пример #1
0
void freeop(AMODE *ap)
/*
 *      release any temporary registers used in an addressing mode.
 */
{       if( ap->mode == am_immed || ap->mode == am_direct )
                return;         /* no registers used */
        if( ap->mode == am_dreg)
					freedata(ap->preg);
        else if( ap->mode == am_areg || ap->mode == am_ind || ap->mode == am_indx || ap->mode == am_adec || ap->mode == am_ainc)
					freeaddr(ap->preg);
        else if( ap->mode == am_freg && ap->preg < cf_freefloat && next_float>0) {
									fregs[ap->preg] = 0;
                	--next_float;
				}
				else if (ap->mode == am_baseindxdata) {
					freeaddr(ap->preg);
					freedata(ap->sreg);
				}
				else if (ap->mode == am_baseindxaddr) {
					freeaddr(ap->preg);
					freeaddr(ap->sreg);
				}
}
Пример #2
0
/*Network Destructor*/
Network::~Network() {
	freeaddr();
	closesocket(s);
	WSACleanup();
}