300 likes | 423 Views
ARQUITETURA DE COMPUTADORES. ANEXO-1 : INSTRUÇÕES ( ROTINA ). CHAMADA DE ROTINA FAR (EM OUTRO SEGMENTO). CALL SEG : OFFSET. FD: 1,0,X,?, =. FI: 1,0,X,?, =. PILHA. FC: 1,0,X,?, =. IPL IPH CSL CSH. FS: 1,0,X,?, =. SP. CS. IP. FO: 1,0,X,?, =. FP: 1,0,X,?, =. CPU. FA: 1,0,X,?, =.
E N D
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) CHAMADA DE ROTINA FAR (EM OUTRO SEGMENTO) CALL SEG : OFFSET FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= IPL IPH CSL CSH FS: 1,0,X,?,= SP CS IP FO: 1,0,X,?,= FP: 1,0,X,?,= CPU FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) CHAMADA DE ROTINA NEAR (NO MESMO SEGMENTO) CALL OFFSET FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= IPL IPH FS: 1,0,X,?,= SP IP FO: 1,0,X,?,= FP: 1,0,X,?,= CPU FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1: INSTRUÇÕES (ROTINA) CHAMADA DE ROTINA RELATIVA NEAR ( MESMO SEGMENTO) CALL DISP + FD: 1,0,X,?,= (1 BYTE) FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= IPL IPH FS: 1,0,X,?,= IP FO: 1,0,X,?,= FP: 1,0,X,?,= CPU FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) RETORNO DE ROTINA FAR (EM OUTRO SEGMENTO) RET FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= IPL IPH CSL CSH IP FS: 1,0,X,?,= CS FO: 1,0,X,?,= CPU FP: 1,0,X,?,= FA: 1,0,X,?,= SP
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) RETORNO DE ROTINA NEAR (NO MESMO SEGMENTO) RET FD: 1,0,X,?,= PILHA FI: 1,0,X,?,= FC: 1,0,X,?,= IPL IPH FS: 1,0,X,?,= IP FO: 1,0,X,?,= SP CPU FP: 1,0,X,?,= FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) RETORNO DE ROTINA FAR (EM OUTRO SEGMENTO) RET NL FD: 1,0,X,?,= (1 BYTE) PILHA FI: 1,0,X,?,= PARL PARH PARL PARH IPL IPH CSL CSH FC: 1,0,X,?,= IP FS: 1,0,X,?,= CS FO: 1,0,X,?,= CPU FP: 1,0,X,?,= FA: 1,0,X,?,= NL: NUMERO DE PARAMETROS ABANDONADOS NA PILHA SP
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) RETORNO DE ROTINA FAR (EM OUTRO SEGMENTO) RET NHNL FD: 1,0,X,?,= (2 BYTES) PILHA FI: 1,0,X,?,= PARL PARH PARL PARH IPL IPH CSL CSH FC: 1,0,X,?,= IP FS: 1,0,X,?,= CS FO: 1,0,X,?,= CPU FP: 1,0,X,?,= FA: 1,0,X,?,= NHNL: NUMERO DE PARAMETROS ABANDONADOS NA PILHA SP
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) RETORNO DE ROTINA NEAR (MESMO SEGMENTO) RET NL FD: 1,0,X,?,= (1 BYTE) PILHA FI: 1,0,X,?,= PARL PARH PARL PARH IPL IPH FC: 1,0,X,?,= IP FS: 1,0,X,?,= FO: 1,0,X,?,= CPU FP: 1,0,X,?,= FA: 1,0,X,?,= SP NL: NUMERO DE PARAMETROS ABANDONADOS NA PILHA
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(ROTINA) RETORNO DE ROTINA NEAR (MESMO SEGMENTO) RET NHNL FD: 1,0,X,?,= (2 BYTES) PILHA FI: 1,0,X,?,= PARL PARH PARL PARH IPL IPH FC: 1,0,X,?,= IP FS: 1,0,X,?,= FO: 1,0,X,?,= CPU FP: 1,0,X,?,= FA: 1,0,X,?,= SP NHNL: NUMERO DE PARAMETROS ABANDONADOS NA PILHA
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) SALVAR NA PILHA REGISTRADORES PUSH REG FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= REGL REGH FS: 1,0,X,?,= SP FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,= REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) SALVAR NA PILHA REGISTRADORES PUSH REGSEG FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= REGSEGL REGSEGH FS: 1,0,X,?,= SP FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,= REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) SALVAR NA PILHA FLAGS PUSH PSW FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= FLAGSL FLAGSH FS: 1,0,X,?,= SP FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,= OUTRO MNEUMONICO: PUSH F
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) SALVAR NA PILHA CONTEUDO DE MEMORIA MEM PUSH [REG] DADOL DADOH FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= DADOL DADOH FS: 1,0,X,?,= SP FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,= OBS: REGPODE SER UM NUMERO DE 16 BITS, COMBINAÇÃO DOS REGISTRADORES OU COMBINAÇÃO DE REGISTRADORES COM NUMEROS. REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) RECUPERAR DA PILHA REGISTRADORES POP REG FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= DADOL DADOH FS: 1,0,X,?,= REG FO: 1,0,X,?,= CPU SP FP: 1,0,X,?,= FA: 1,0,X,?,= REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) RECUPERAR DA PILHA CONTEUDO DE MEMORIA MEMORIA POP [REG] DADOL DADOH FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= DADOL DADOH FS: 1,0,X,?,= FO: 1,0,X,?,= SP FP: 1,0,X,?,= FA: 1,0,X,?,= OBS: REGPODE SER UM NUMERO DE 16 BITS, COMBINAÇÃO DOS REGISTRADORES OU COMBINAÇÃO DE REGISTRADORES COM NUMEROS. REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) RECUPERAR DA PILHA REGISTRADORES DE SEGMENTO POP REGSEG FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= DADOL DADOH FS: 1,0,X,?,= REGSEG FO: 1,0,X,?,= CPU SP FP: 1,0,X,?,= FA: 1,0,X,?,= REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(PILHA) RECUPERAR DA PILHA OS FLAGS POP PSW FD: 1,0,X,?,= FI: 1,0,X,?,= PILHA FC: 1,0,X,?,= DADOL DADOH FS: 1,0,X,?,= FO: 1,0,X,?,= SP FP: 1,0,X,?,= FA: 1,0,X,?,= OUTRO MNEUMONICO: POP F
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(FLAG´s) SETAR FLAG DE CARRY STC FD: 1,0,X,?,= FI: 1,0,X,?,= FC: 1,0,X,?,= FS: 1,0,X,?,= FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(FLAG´s) RESETAR FLAG DE CARRY CLC FD: 1,0,X,?,= FI: 1,0,X,?,= FC: 1,0,X,?,= FS: 1,0,X,?,= FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(FLAG´s) INVERTER FLAG DE CARRY CMC FD: 1,0,X,?,= FI: 1,0,X,?,= FC: 1,0,X,?,= FS: 1,0,X,?,= FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(FLAG´s) SETAR FLAG DE DIREÇÃO STD FD: 1,0,X,?,= FI: 1,0,X,?,= FC: 1,0,X,?,= FS: 1,0,X,?,= FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(FLAG´s) RESETAR FLAG DE DIREÇÃO CLD FD: 1,0,X,?,= FI: 1,0,X,?,= FC: 1,0,X,?,= FS: 1,0,X,?,= FO: 1,0,X,?,= FP: 1,0,X,?,= FA: 1,0,X,?,=
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(E/S) ENTRADA DE DADOS, ENDEREÇO DA PORTA FORNECIDO PELA PROPRIA INSTRUÇÃO PORTA DE ENTRADA IN REG, PORTA (1 BYTE) REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(E/S) ENTRADA DE DADOS, ENDEREÇO DA PORTA FORNECIDO NO REGISTRADOR DX PORTA DE ENTRADA IN REG DX CPU REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(E/S) SAIDA DE DADOS, ENDEREÇO DA PORTA FORNECIDO PELA PROPRIA INSTRUÇÃO OUT REG, PORTA PORTA DE SAIDA (1 BYTE) REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ARQUITETURA DE COMPUTADORES ANEXO-1 : INSTRUÇÕES(E/S) SAIDA DE DADOS, ENDEREÇO DA PORTA FORNECIDO NO REGISTRADOR DX OUT REG DX PORTA DE SAIDAA CPU REG: AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI ,SP,BP,CS, DS,ES ,SS
ANEXO-2 : ASSEMBLER / LINKER ARQUITETURA DE COMPUTADORES .ASM SEGMENTO DE PILHA SEGMENTO DE DADOS SEGMENTO DE CODIGO SEGMENTO nome SEGMENT características nome ENDS CORPO DO SEGMENTO
ANEXO-2 : ASSEMBLER / LINKER ARQUITETURA DE COMPUTADORES CORPO DO SEGMENTO DE PILHA CRIA UM BYTE DENTRO DO SEGMENTO DB ? DB ? DB ? .... DB ?
ANEXO-2 : ASSEMBLER / LINKER ARQUITETURA DE COMPUTADORES CORPO DO SEGMENTO DE DADOS nome_1 DB valor_inicial nome_2 DB valor_inicial nome_3 DB valor_inicial ... nome_N DB ?
ANEXO-2 : ASSEMBLER / LINKER ARQUITETURA DE COMPUTADORES CORPO DO SEGMENTO DE CODIGO PROCEDIMENTO_1 PROCEDIMENTO_2 PROCEDIMENTO_3 ............................ PROCEDIMENTO_M