Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Stergere periodica mailuri yahoo

Inlocuire emblema Passat B8 cu di...

video portret in landscape

Am fost eu plecat multa vreme din...
 Laboratoare analize de sange - POLL

Ambrozia - un fenomen in Romania

Modem/router portabil

asistenta medicala
 Credeti ca se mananca bine in pop...

Cata siguranta au biciclistii tro...

Ce parere aveti: am gresit sau nu ?

Cu ce program este facut acest vi...
 Ziar din 5 sau 6 Ianuarie 1997

Conexiune 3 boxe in serie/paralel

Panou comanda pompa Grundfos CU 301

Talk to Me (2022)
 

8086 Afisare patrat cu latura arbitrara

- - - - -
  • Please log in to reply
1 reply to this topic

#1
DocH

DocH

    New Member

  • Grup: Candidate Members
  • Posts: 1
  • Înscris: 15.06.2022
Buna ziua! Am un proiect de terminat si sunt cam pe ultima suta de metrii. Am de facut chestia asta in emu8086. Am incercat ceva insa nu face tocmai ce ar trebui sa faca si as dori niste directive/sfaturi .

Cerinta este urmatoarea :
            Scrieti un program care sa primeasca de la tastatura un numar N, intre 1 si 9. Programul va afisa pe ecran un patrat cu latura N, umplut cu caractere '*' ,coltul stanga sus fiind pe randul 10, coloana 10.

Attached Files



#2
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,101
  • Înscris: 24.04.2013
Drept sa spun amintirile mele pe acest subiect s-au cam estompat, dar ce se cam vede asa din avion:
  • Ce cittesti de la stdin sunt coduri de caractere (sau probabil un singur cod, nu mai stiu numere de functii de la int 21h). Inainte de a-l putea folosi drept contor, acest cod trebuie transformat intr-un numar intreg asa cum e necesar procesorului. Aici e simplu fiindca ai numere de o singura cifra. Cum cifrele '0''9' au codurile ASCII 0x300x39 trebuie sa scazi '0' (0x30) din cod si obtii intregul.
  • Ca patratul sa inceapa din coloana 10, dupa CR LF trebuie sa mai scrii si niste spatii.
  • Din linia 10 nu prea vad cum ar putea sa inceapa cu functiile int 21h, fiindca din ce imi amintesc nu ai operatii de pozitionare cursor. Ce poti face, ramanad totusi la int 21h:
    • scrii 10 × CR LF la inceput sa ai linii goale,
    • apoi scrii patratul, indentat cat trebuie cu spatii
    • si la sfarsit, presupunand ca stii numarul de linii ale consolei (de exemplu 25) mai scrii cate linii goale sunt necesare ca sa faca scroll si patratul sa se pozitioneze unde cere problema.
  • Linia 10’ metoda 2: DACA terminalul suporta comenzi de pozitionare cursor, de genul VT100 (sunt niste secvente de caractere care incep cu ESC), le folosesti pe acelea.
  • Totusi metoda cea mai buna pentru ‘linia 10’: treci pe int 10h, functiile BIOS, ca din ce mi-aduc aminte acolo exista pozitionare cursor.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate