1 / 10

Prática de Programação Assembly 8086

Prática de Programação Assembly 8086. Otávio Alcântara. Modelo de Programação. AX – Acumulador em operações aritméticas, lógicas, E/S, etc ; BX – Base para instruções com vetores de dados; CX – Contador em operações iterativas e repetitivas;

lundy
Download Presentation

Prática de Programação Assembly 8086

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prática de Programação Assembly 8086 Otávio Alcântara

  2. Modelo de Programação • AX – Acumulador em operações aritméticas, lógicas, E/S, etc; • BX – Base para instruções com vetores de dados; • CX – Contador em operações iterativas e repetitivas; • DX – Dados utilizados nas operações de multiplicação e divisão; • SI – Endereço fonte em instruções de manipulação de vetores; • DI – Endereço destino em instruções de manipulação de vetores;

  3. Modelo de Programação • Registros de Segmentos • CS – Indica o segmento de código; • DS – Indica o segmento de dados; • ES – Indica o segmento extra de dados; • SS – Indica o segmento para a pilha; • IP – ponteiro de instruções; • SP – ponteiro da pilha; • BP – ponteiro para posições de memória; • FLAGS – bits de status e controle;

  4. Endereçamento • Modo Real • Endereça 1 MB de dados • Endereço relativo • Registrador de segmento + OFFSET • CS:IP • DS:BX • Permite realocação de segmentos

  5. Modos de Endereçamento de Dados • Registro – MOV AL, BL • Imediato – MOV AL, 28H • Direto – MOV [1234], AL • Indireto – MOV [BX],CL • Base+Index – MV [BX+SI],BP • Relativo – MOV CL,[BX+4] • Relativo Base + Index – MOV ARRAY[BX+SI], DX

  6. Conjunto de Instruções - Resumo • MOV dest, src – MOV AL, BL • INT num – INT 21H • ADD dest, valor – ADD AL, 10h • SUB dest, valor – SUB AL, 2h • DEC reg – DEC BX • INC reg – INC BX • JMP POS – JMP FIM_PROC • CALL POS - CALL LER_INT • LOOP LABEL – MOV CX, 03H; LOOP M_LABEL; • LODSB – carrega um byte da memória • LODSW – carrega um word da memória • STOSB – salva um byte na memória • STOSW – salva um word na memória

  7. Conjunto de Instruções - Resumo • CMP AX, BX • Comparação sem Sinal • JA – Jump AX > BX • JAE – Jump AX >= BX • JB – Jump AX < BX • JBE – Jump AX <= BX • JNA – Jump !(AX > BX) • JNAE – Jump !(AX >= BX) • JNB – Jump !(AX < BX) • JNBE – Jump !(AX <= BX) • JZ – Mesmo que JE • JE – Jump AX == BX

  8. Exemplo de Código - MASM .MODEL SMALL .STACK 100H .DATA Str1 db “HELLO WORLD”,13,10,’$’ .CODE ;atualiza o DS com o segmento que guarda STR1 MOV AX,SEG Str1 MOV DS, AX ;chama a INT 21 para printar a str na tela MOV DX, OFFSET Str1 MOV AH, 09 INT 21H ;encerra o programa MOV AX, 4c00H INT 21 H END

  9. Gerando Executável • >> masm.exe /c /l arquivo.asm arquivo.obj arquivo.lst arquivo.crf • >> link.exe arquivo.obj • Run File [arquivo.exe]: arquivo.exe • List File [null.map]: arquivo.map • Libraries [.LIB]:

  10. Conclusão • Discutimos o modelo de programação do 8086, seus registradores, modos de endereçamento e principais instruções. • Referências • THE INTEL MICROPROCESSORS – Barry B. Bray, 5 ed. 2000 • Tutorial de Assembler de Adam Hyde 1.0 - http://www.geocities.com/rnbastos/prog/asm/

More Related