1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

duvida em assembly

Discussão em 'Programação' iniciada por The Dealer, 5 de Junho de 2008. (Respostas: 3; Visualizações: 1063)

  1. The Dealer

    The Dealer Power Member

    Boas.

    Vou ser o mais directo possivel. Precisava de um programa em assembly que mostrasse no ecra um triangulo, cuja cor e tamanho variasse conforme o utilizador decidisse.

    Precisava disso para as proximas 12 horas para aplicar num trabalho, por isso se alguem estiver ja pronto a chamar.me lambao, preguiçoso e essas cenas, trabalho oito horas por dia para pagar propinas :)

    Ninguem tem nada disso por ai?
     
    Última edição: 5 de Junho de 2008
  2. Aqui não se fazem trabalhos, se quiseres mostrar o que já tens feito e esclarecer alguma dúvida que tenhas, diz. Mas não esperes que alguém te faça tudo.
     
  3. jahred

    jahred Power Member

    ele não perguntou se alguém lhe podia fazer o trabalho. ele perguntou se alguém tinha algo do género já feito... são coisas diferentes... eu não posso ajudar porque não tenho nada do género, mas se tivesse ajudava! de qq maneira tou aqui se for preciso tirar dúvidas :)
     
  4. The Dealer

    The Dealer Power Member

    eu tenho o "trabalho" praticamente feito. so q nao consigo fazer certas coisas, nomeadamente fazer com que peça ao utilizador o tamanho de h (altura), que por sua vez é igual a b (base), (é um triangulo isosceles). Eu só pedi sem por aqui nada (bocas maldosas) porque queria primeiro comparar antes de por aqui trapalhada, de qualquer das formas fica aqui o que ja fiz entretanto. O que já fiz, pede ao utilizador a cor, escolhe-se de 0 a 9, e desenha um triangulo de h=b=10.

    Código:
    org 100h
    
    section .text
    
    ;------------------ COR
    ;; opcoes
    mov ah, 40h
    mov bx, 1
    mov cx, 16
    mov dx, msg
    int 21h
    
    ;; int 16 - teclado
    mov ah,10h
    int 16h
    
    mov byte[tecla], al
    sub byte[tecla], 48
    
    mov al, byte[tecla]
    mov byte[cor], al
    
    ;------------------- Altura e Base
    ; opcoes
    mov ah, 40h
    mov bx, 1
    mov cx, 26
    mov dx, msg2
    int 21h
    
    mov ah, 3fh
    mov bx, 0
    mov cx, 3
    mov dx, word[h]
    int 21h
    
    sub word[h], 48
    ;-------------------------------------
    
    
    ;mudar modo de video
    mov ah, 00h
    mov al, 13h; 320x200
    int 10h
    
    ;mov word[h], 10
    mov ax,word[colunas]
    add word[h], ax
    
    mov word[count], 59
    
    mov word[colunas], 60
    mov word[linhas] , 70
    
    ciclo2:
        add word[count],1
        mov ax, word[count]
        mov word[colunas], ax
    
    ciclo:
    
        mov ah, 0ch
        mov al, byte[tecla]
        mov bh, 0 ; pagina zero
        mov cx, [colunas]
        mov dx, [linhas]
        int 10h
    
    
        add word[colunas],1
    
        cmp word[colunas],70
        jne     ciclo
    
        add word[linhas],1
        cmp word[linhas], 80
        jne ciclo2
    
    
    
    ;fica a espera que se carregue numa tecla
    mov ah, 07h
    int 21h
    
    ; volta ao modo de texto (normal)
    mov ah, 00h
    mov al, 03h
    int 10h
    
    ; retorno ao SO
    mov ah, 4ch
    int 21h
    
    section .data
    msg db 'Escolha a cor:', 0ah, 0dh
    msg2 db 'Escolha a altura e base:', 0ah,0dh
    
    section .bss
    colunas resw 1
    linhas resw 1
    h resw 1
    count resw 1
    tecla resb 1
    cor resb 1
     
    Última edição: 5 de Junho de 2008

Partilhar esta Página