Sobre o ajuda.txt ================= O objetivo deste documento ‚ fornecer ao aluno no‡”es gerais sobre algumas ferramentas do assembler, dicas a respeito da entrega dos projetos, bem como alguns dados de grande importƒncia para a implementa‡„o destes. bom lembrar sempre que, para informa‡”es mais detalhadas, o aluno dever  procurar tamb‚m as seguintes fontes:  A p gina da disciplina http:\\lad.dsc.ufpb.br\LabArq  O tutorial do depurador A partir do prompt do DOS, dˆ o comando DEBTUT em seguida aperte Ctrl-PageDown  O manual do Pentium A partir do prompt do DOS, dˆ o comando S:\SB> acrobat P:\archprog.pdf Se o mouse estiver bagun‡ando a tela, aperte Alt-W B Este arquivo tambem pode ser visualizado no Windows * DICAS (MUITO IMPORTANTE!!!!!!) ----------------------------- Nao esqueca de colocar a sua matricula como parametro da funcao cadastrar Fa‡a sempre back-up dos seus arquivos em disquette ou em outro servidor. Uso das ferramentas =================== * Uso do depurador ----------------  Sempre execute o seu c¢digo dentro do depurador, nao use Ctrl-F9.  Sempre aperte a tecla F9 antes de entrar no depurador para ter certeza que seu pr¢prio c¢digo ser  executado.  Para entrar no depurador v  no menu ð e selecione a op‡„o GDB.  Para obter mais ajuda aperte a tecla F1 depois de entrar no depurador.  Para gravar a tela do depurador em arquivo pressione Ctrl-PrintScreen. Os arquivos gravados ter„o os nomes Tela_0.lst at‚ Tela_z.lst (no m ximo 37 telas). Quando uma tela for gravada, ela recebe um carimbo.  Para olhar as telas que foram previamente gravadas, entre no depurador e utilize Ctrl-PageUp/PageDown para navegar por entre elas.  Para retirar uma tela utilize Ctrl-Delete ou Ctrl-End, para inserir ela em outro lugar utilize Ctrl-Insert ou Ctrl-Home.  A janela de coment rios faz quebra de linhas automaticamente, como no MS Word.  Para visualizar uma LDT, posicione o descritor da LDT nas linhas destacadas em azul escuro na janela da GDT e aperte a tecla L. Se as linhas destacadas nao sao de uma LDT, a LDT em LDTR ser  visualizada ao apertar a tecla L. * Rotinas da biblioteca fornecida ------------------------------- Aqui est„o algumas rotinas da biblioteca disponivel. Para se obter mais detalhes (argumentos, etc.) sobre estas, procure ver o c¢digo fonte destas rotinas e os comentarios nele contidos. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ nome (r¢tulo) ³ arquivo.asm ³ descri‡„o ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ cadastrar ³ extra ³ prepara o ambiente para nossos ³ ³ ³ ³ trabalhos ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ inicializar ³ extra ³ inicializa FPU e video ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³ ler_executavel ³ extra ³ lˆ do arquivo a ser carregado por ³ ³ ³ ³ nosso carregador ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Como entregar um trabalho ========================= O trabalho deve ser entregue zipado usando o comando ZIPPAR do prompt do MS-DOS dentro da sua pasta no disco H: . Depois, copie o arquivo zipado para o disco H: (H:\ELMAR\ENTREGA) colocando como nome do arquivo sua matricula sem "g2". Exemplo: zippar boa copy boa.zip \elmar\entrega\0012345.zip Para enviar uma versao atualizada acrescente uma lettra, por exemplo copy boa.zip \elmar\entrega\0012345a.zip copy boa.zip \elmar\entrega\0012345b.zip Sera considerada o arquivo com a ultima letra no alfabeto. Exce‡”es e Interrup‡”es ====================== As tabelas seguintes s„o c¢pias de tabelas do manual do Pentium. Table 5-1. Protected-Mode Exceptions and Interrupts ÚÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Vector³Mne- ³ ³ ³Error³ ³ ³No. ³monic³Description ³Type ³Code ³Source ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³0 ³#DE ³Divide Error ³Fault ³No ³DIV and IDIV instructions. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³1 ³#DB ³Debug ³Fault/Trap³No ³Any code or data reference or the INT 1 instruction. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³2 ³ - ³NMI Interrupt ³Interrupt ³No ³Nonmaskable external interrupt. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³3 ³#BP ³Breakpoint ³Trap ³No ³INT 3 instruction. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³4 ³#OF ³Overflow ³Trap ³No ³INTO instruction. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³5 ³#BR ³BOUND Range Exceeded ³Fault ³No ³BOUND instruction. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³6 ³#UD ³Invalid Opcode ³Fault ³No ³UD2 instruction or reserved opcode.1 ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³7 ³#NM ³No Math Coprocessor ³Fault ³No ³Floating-point or WAIT/FWAIT instruction. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³8 ³#DF ³Double Fault ³Abort ³Yes ³Any instruction that can generate an exception, an MI,or an INTR.³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³9 ³ - ³Coprocessor Segment Overrun³Fault ³No ³Floating-point instruction.2 ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³10 ³#TS ³Invalid TSS ³Fault ³Yes ³Task switch or TSS access. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³11 ³#NP ³Segment Not Present ³Fault ³Yes ³Loading segment registers or accessing system segments. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³12 ³#SS ³Stack-Segment Fault ³Fault ³Yes ³Stack operations and SS register loads. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³13 ³#GP ³General Protection Fault ³Fault ³Yes ³Any memory reference and other protection checks. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³14 ³#PF ³Page Fault ³Fault ³Yes ³Any memory reference. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³15 ³ - ³(Intel reserved.) ³ ³No ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³16 ³#MF ³Floating-Point Error ³Fault ³No ³Floating-point or WAIT/FWAIT instruction. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³17 ³#AC ³Alignment Check ³Fault ³Yes ³Any data reference in memory. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³18 ³#MC ³Machine Check ³Abort ³No ³Error codes (if any) and source are model dependent. ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³19-31 ³ - ³Intel reserved. Do not use.³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³32-255³ - ³User Defined Interrupts ³Interrupt ³ No ³ External interrupt or INT n instruction. ³ ÀÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tabela 5-1a. Interrup‡”es de hardware utilizadas no Laborat¢rio de Organiz‡„o de Computadores ÚÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Vector³ ³ ³ ³No. ³ Dispositivo ³ Atendimento ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³80 ³ temporizador ³ escrever 20h na porta 20h ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³81 ³ teclado ³ ler porta 64h, se bit 0 setado ler porta 60h,³ ³ ³ ³ escrever 20h na porta 20h ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³84 ³ mouse serial ³ le porta 3F8h, escrever 20h na porta 20h ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³116 ³ mouse PS/2 ³ ler porta 64h, se bit 0 setado ler porta 60h,³ ³ ³ ³ depois de alguns ms tenta ler de novo, depois³ ³ ³ ³ escrever 20h na porta 20h e na porta 0A0h ³ ÀÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tabela 5-1b. A interrup‡„o de software no vector 21h (int 21h) ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³valor contido em ah ³ a‡„o ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 01h ³ aguarde que o usu rio aperta uma tecla ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ 4Ch ³ sai do seu programa e volta para o MS-DOS ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Pagina‡„o ========= Figura 3-14. Formato das entradas do Page-Directory e do Page-Table para paginas de 4 KBytes e endere‡os f¡sicos de 32 Bits 31 12 6 5 4 3 2 1 0 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÂÄÂÄÂÄÂÄÂÄÂÄ¿ ³ ³ ³ ³ ³P³P³U³R³ ³ ³ Base Address 31:12 ³0 0 0 0 0³D³A³C³W³/³/³P³ ³ ³ ³ ³ ³D³T³S³W³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄÁÄÁÄÁÄÁÄÙ O endere‡o f¡sico da page directory pode ser encontrado no registro CR3. J  o endere‡o linear que causou o page fault se encontra no registro CR2. As fun‡”es dos flags e campos das entradas do Page-Directory e do Page-Table mostradas na figura 3-14 s„o descritas a seguir:  Base address -> o lugar da entrada destinado ao endere‡o de base. Ocupa os bits que v„o de 12 a 31  P -> Present flag  R/W -> Read/write flag  U/S -> User/supervisor flag  PWT -> Page-level write-through flag  PCD -> Page-level cache disable flag  A -> Accessed flag  D -> Dirty flag O flag de presen‡a (Present flag) indica que a pagina ou page-table que est  sendo apontada se encontra ou n„o na memoria f¡sica. Se esse flag est  setado, a pagina se encontra na mem¢ria f¡sica e a decodifica‡„o do endere‡o ‚ feita. Se o flag est  resetado, a p gina n„o est  na mem¢ria e, se o processador tentar acess -la, ‚ gerada uma page-fault (#PF). O processador n„o seta ou reseta esse flag, esta tarefa cabe ao sistema operacional. Se o processador gera uma #PF, o sistema operacional dever  executar as seguintes opera‡”es: 1. Copiar a pagina do disco e armazena-la na memoria f¡sica. 2. Armazenar o endere‡o da p gina na entrada da page-table ou page-directory e setar o flag de presen‡a. Neste momento, outros bits tais como o "dirty flag" e o "accessed flag" tamb‚m podem ser setados. 3. Desativar a entrada corrente da page table na TLB, usando a instru‡„o MOV. Por exemplo: MOV CR3, EAX (onde o registrador EAX cont‚m o endere‡o de base do page-directory apropriado) 4. Retornar da rotina de atendimento ao #PF e reinicializar o programa onde ocorreu a exe‡„o. * O mapa da mem¢ria -----------------  ENDERE€O FISICO DE 00000000h ATE 000FFFFFh Os endere‡os lineares 00000000h at‚ 000FFFFFh s„o mapeados diretamente para estes mesmos endere‡os f¡sicos. Esta  rea cont‚m o MS-DOS e tamb‚m o page directory (ver registro CR3) e a mem¢ria de v¡deo nos endere‡os 000B8000h ate 000B8FFFh (ate 000B87FFh para 25 linhas).  ENDERE€O FISICO 00100000h ATE 00BFFFFFh Os endere‡os lineares 00400000h ate 007FFFFFh s„o onde nossos programas s„o rodados e uma parte do extender e do debugger s„o mapeados para uma determinada parte desta area fisica da memoria.  ENDERE€O FISICO 00800000h ATE 01FFFFFFh (com 32 MB de RAM) Os endere‡os lineares 00800000h ate 01FFFFFFh s„o mapeados diretamente para estes mesmos endere‡os f¡sicos. Aqui podemos experimentar mais livremente sem ter medo de afetar MS-DOS, editor, extender ou debugger.  ENDERE€O FISICO/LINEAR 02000000h ATE DFFFFFFFh Nesta area n„o tem nada.  ENDERE€O LINEAR E0000000h ATE E0100000h Esta mapeado para a tela de video no modo grafico (pixel por pixel). O endereco fisico depende do computador.  ENDERE€O LINEAR F0000000h ATE F0100000h Esta mapeado para uma zona da RAM que ‚ usado pelo debugger para salvar conteudo do buffer de video quando a janela do debugger est  na tela. Segmenta‡„o =========== Figura 3-6. Segment Selector 15 3 2 1 0 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÂÄÄÄ¿ ³ ³T³ ³ ³ Index ³I³RPL³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÄÄÄÙ  TI - Table indicator (0=Global Descriptor Table, 1=Local Descriptor Table)  RPL - Requested priviledge level Figura 3-8. Segment Descriptor for code segments, data segments and task state segments 63 55 53 51 47 45 43 40 16 0 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÂÄÂÄÂÄÂÄÄÄÄÄÄÄÂÄÂÄÄÄÂÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³D³ ³A³ Seg. ³ ³ D ³ ³ ³ ³ ³ ³ Base 31:24 ³G³/³0³V³ Limit ³P³ P ³S³ Type ³ Base Address 23:00 ³ Segment Limit 15:00 ³ ³ ³ ³B³ ³L³ 19:16 ³ ³ L ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÁÄÁÄÁÄÁÄÄÄÄÄÄÄÅÄÁÄÄÄÁÄÁÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 7 6 5 4 3 2 1 0  AVL -> Available for use by system software  BASE -> Segment base address  D/B -> Default operation size (0 = 16-bit segment; 1 = 32-bit segment)  G -> Granularity  LIMIT -> Segment Limit  P -> Segment present  S -> Descriptor type (0 = system; 1 = code or data)  TYPE -> Segment type  DPL -> Descriptor privilege level Figura 14-2. Gate Decriptors para o call gate, task gate, interrupt gate e trap gate 31 23 21 19 15 13 11 8 7 4 0 31 16 0 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÂÄÄÄÂÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ D ³ ³ ³ ³ ³ ³ ³ ³ Offset 31:16 ³P³ P ³0³ Type ³0 0 0³ Param. ³ Segment Selector ³ Offset 15:00 ³ 0 ³ ³ ³ L ³ ³ ³ ³ Count ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÁÄÄÄÁÄÁÄÄÄÄÄÄÄÅÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 7 6 5 4 3 2 1 0 Parameter count only for Call gate No offset for Task gate Table 3-1. Code- and Data-Segment Types ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Type ³Description ³ ³Field ³ ³ ÃÄÂÄÂÄÂÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³E³W³A³ ³ ÃÄÅÄÅÄÅÄÅÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³0³0³0³0³Data³Read-Only ³ ³0³0³0³1³Data³Read-Only, accessed ³ ³0³0³1³0³Data³Read/Write ³ ³0³0³1³1³Data³Read/Write, accessed ³ ³0³1³0³0³Data³Read-Only, expand-down ³ ³0³1³0³1³Data³Read-Only, expand-down, accessed ³ ³0³1³1³0³Data³Read/Write, expand-down ³ ³0³1³1³1³Data³Read/Write, expand-down, accessed ³ ÃÄÅÄÅÄÅÄÅÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³ ³C³R³A³ ³ ÃÄÅÄÅÄÅÄÅÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij ³1³0³0³0³Code³Execute-Only ³ ³1³0³0³1³Code³Execute-Only, accessed ³ ³1³0³1³0³Code³Execute/Read ³ ³1³0³1³1³Code³Execute/Read, accessed ³ ³1³1³0³0³Code³Execute-Only, conforming ³ ³1³1³0³1³Code³Execute-Only, conforming, accessed ³ ³1³1³1³0³Code³Execute/Read, conforming ³ ³1³1³1³1³Code³Execute/Read, conforming, accessed ³ ÀÄÁÄÁÄÁÄÁÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Table 3-2. System-Segment and Gate-Descriptor Types ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Type ³ Description ³ ³Field ³ ³ ÃÄÂÄÂÄÂÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³0³0³0³0³Reserved ³ ³0³0³0³1³16-Bit Task State Segment (Available) ³ ³0³0³1³0³Local Descriptor Table ³ ³0³0³1³1³16-Bit Task State Segment (Busy) ³ ³0³1³0³0³16-Bit Call Gate ³ ³0³1³0³1³Task Gate ³ ³0³1³1³0³16-Bit Interrupt Gate ³ ³0³1³1³1³16-Bit Trap Gate ³ ³1³0³0³0³Reserved ³ ³1³0³0³1³32-Bit Task State Segment (Available) ³ ³1³0³1³0³Reserved ³ ³1³0³1³1³32-Bit Task State Segment (Busy) ³ ³1³1³0³0³32-Bit Call Gate ³ ³1³1³0³1³Reserved ³ ³1³1³1³0³32-Bit Interrupt Gate ³ ³1³1³1³1³32-Bit Trap Gate ³ ÀÄÁÄÁÄÁÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ