რა მნიშვნელობას დაუბრუნებს min h4 h8 ფუნქცია. მინიმალური მნიშვნელობა ნულის გარდა

Text ეკრანზე ტექსტის ჩვენება ვიდეო ბუფერის პირდაპირი პროგრამირებით.

Application განაცხადის პროგრამების შემუშავება BIOS მომსახურების ფუნქციების გამოყენებით, ეკრანთან და კლავიატურაზე მუშაობისთვის.

Software დანერგეთ პროგრამული ოპერაციების შეფერხება.

No2 სამუშაოში გათვალისწინებული იყო DOS სისტემის სხვადასხვა ფუნქციები ეკრანზე სიმბოლური ინფორმაციის გამოსახვისთვის. ამასთან, DOS– ის შესაძლებლობები ძალზე შეზღუდულია: მას არა აქვს ნაჩვენები სიმბოლოების ფერის შეცვლისა და კურსორის პოზიციონირების ფუნქციები. გარდა ამისა, DOS– ს არ გააჩნია გრაფიკული რენდერის საშუალებები.

კომპიუტერის ვიდეო სისტემის ყველა შესაძლებლობის რეალიზება შესაძლებელია BIOS შეწყვეტის ვიდეო ფუნქციების გამოყენებით int 10 სთ... შეაწყვეტინეთ int 10 სთ უზრუნველყოფს: ვიდეო რეჟიმის (ტექსტის ან გრაფიკის) შეცვლას; სიმბოლური და ტექსტური ინფორმაციის გამომუშავება; შრიფტების შეცვლა, ფერების პალიტრის მოწესრიგება, გრაფიკულ გამოსახულებასთან მუშაობა. ვიდეო სისტემის დაპროგრამება BIOS ინსტრუმენტების გამოყენებით უფრო რთულია, თუმცა დიდი შესაძლებლობები და გამომავალი მაღალი სიჩქარე განაპირობებს ამ მეთოდის ფართო გამოყენებას პროგრამულ პროგრამებში.

ამ ნაშრომში განხილულია BIOS– ის ფუნქციები კომპიუტერის ვიდეო სისტემის შესანარჩუნებლად, აგრეთვე კლავიატურაზე მუშაობის ფუნქციები. მოდით ჩამოვთვალოთ ის ფუნქციები, რომლებიც ლაბორატორიაში განხილვის საგანია.

Int 10h:

ფუნქცია 00h - ვიდეო რეჟიმის პარამეტრი;

ფუნქცია 02h - კურსორის პოზიციის დაყენება;

ფუნქცია 03h - კურსორის პოზიციისა და ზომის წაკითხვა;

ფუნქცია 05 სთ - ვიდეოს გვერდის დაყენება;

ფუნქცია 06 სთ (07 სთ) - ინიცირება ან ფანჯრის გადახვევა ზემოთ (ქვემოთ);

ფუნქცია 08h - სიმბოლოს და ატრიბუტის კითხვა კურსორის პოზიციაზე;

ფუნქცია 09h - კურსორის პოზიციის სიმბოლოს და ატრიბუტის დაწერა;

ფუნქცია 0Ah - კურსორის პოზიციაზე სიმბოლოს წერა მიმდინარე ატრიბუტით;

ფუნქცია 0Eh - სიმბოლოს ჩაწერა teletype რეჟიმში მიმდინარე ატრიბუტით;

ფუნქცია 0Fh - ეკრანის რეჟიმის მიღება;

ფუნქცია 1003h - ატრიბუტის ყველაზე მნიშვნელოვანი ბიტის მინიჭების მინიჭება: ციმციმი / სიკაშკაშე,

ფუნქცია 13h - მოცემული ატრიბუტით სტრიქონის დაწერა teletype რეჟიმში.

Int 16 სთ:

ფუნქცია 00h (10h) - კლავიში პერსონაჟის კითხვა ლოდინით;

ფუნქცია 01h (11h) - კლავიატურის ბუფერის შემოწმება მასში სიმბოლოს არსებობის შესახებ;

ფუნქცია 02h (12h) - (გაფართოებული) კლავიატურის დროშების მიღება.

Int 15 სთ,ფუნქცია 86 სთ - დაგვიანება.

Int 1აჰ, ფუნქცია 00h - სისტემის დროის მიღება.

8.2.2. პირდაპირი ვიდეო ბუფერული პროგრამირება ტექსტურ რეჟიმში

თანამედროვე ვიდეო კონტროლერები მხარს უჭერენ მრავალფეროვან ტექსტურ და გრაფიკულ რეჟიმებს. ტექსტური რეჟიმები განსხვავდება რეზოლუციით (ჰორიზონტალურად და ვერტიკალურად ნაჩვენები სიმბოლოების რაოდენობა) და ფერების პალიტრა (მონოქრომული ან 16 ფერადი რეჟიმი). გრაფიკული რეჟიმებისთვის, კლასიფიკაციის მთავარი მახასიათებელია ერთდროულად ნაჩვენები ფერების რაოდენობა და, შესაბამისად, ვიდეოს მეხსიერების ბიტების რაოდენობა, რომელიც გამოყოფილია გამოსახულების თითოეულ წერტილზე (პიქსელზე). გამოირჩევა შემდეგი სახის გრაფიკული რეჟიმები:

მონოქრომული (1 ბიტიანი კოდირება);

16 ფერის EGA / VGA (4 ბიტიანი კოდირება);

256 ფერის SVGA (8 ბიტიანი კოდირება);

- HiColor (16 ბიტიანი კოდირება);

- Ნამდვილი ფერი (24 ბიტიანი / 32 ბიტიანი კოდირება).

VGA (SVGA) გრაფიკული რეჟიმები მოძველებულია და ტექსტური რეჟიმების წარმატებით გამოყენება გრძელდება (იხ. ცხრილი 3.2, განყოფილება 8.2.3).

ყველაფერი, რაც მონიტორზეა ნაჩვენები - გრაფიკა, ტექსტი, ერთდროულად არის ვიდეო ადაპტერში ჩაშენებულ მეხსიერებაში. იმისათვის, რომ გამოსახულება გამოჩნდეს მონიტორზე, ეს უნდა იყოს დაწერილი ვიდეოს ადაპტერის მეხსიერებაში. ტექსტური რეჟიმში, VGA– თავსებადი სისტემებისთვის, ვიდეო მეხსიერებას გამოყოფილი აქვს მისამართის სივრცე (გარდა მონოქრომული ადაპტერით მე –7 ვიდეო რეჟიმისა), ლოგიკური მისამართით B800h: 0000h და დამთავრებული BF00h: 0FFFh. ეს ტერიტორია დაყოფილია 8 სექტორად ვიდეო გვერდების რაოდენობის გათვალისწინებით (4 კბ გვერდზე). ამრიგად, ვიდეო მეხსიერების მისამართების სივრცის ტექსტის რეჟიმში განთავსება შემდეგია:

B800h: 0000h - გვერდი 0, ოფსეტური დიაპაზონი 0000h - 0FFFh

B900h: 0000h - გვერდი 1, ოფსეტური დიაპაზონი 0000h - 0FFFh

- ...........

BF00h: 0000h - გვერდი 7, ოფსეტური დიაპაზონი 0000h - 0FFFh

ეკრანზე ნაჩვენებია ვიდეოს ბუფერი, რომელიც შეესაბამება აქტიურ გვერდს. ტექსტის რეჟიმებში თითოეული სიმბოლოს ჩვენებისთვის გამოიყოფა 2 ბაიტი: ბაიტი ერთად ASCII-პერსონაჟის კოდი და ბაიტი მისი ატრიბუტით. უფრო მეტიც, მისამართზე B800 სთ: 0000 სთ არის ბაიტი პერსონაჟის კოდით (ეკრანის ზედა მარცხენა კუთხე) და B800 სთ: 0001 სთ - ამ სიმბოლოს ატრიბუტი; B800 სთ: 0002 სთ - მეორე სიმბოლოს კოდი და B800 სთ: 0003 სთ - მეორე პერსონაჟის ატრიბუტი და ა.შ. ზოგადად, ვიდეოს პირდაპირ ბუფერში სურათის ფორმირებისას, DOS და BIOS პროგრამების გვერდის ავლით, ყველა კონტროლის კოდი ASCII კარგავენ კონტროლის ფუნქციებს და ნაჩვენებია, როგორც შესაბამისი სიმბოლოები. ატრიბუტის ბაიტის სტრუქტურა ნაჩვენებია ნახატზე. 3.1.

ფიგურა: 3.1. ატრიბუტის ბაიტის სტრუქტურა

ნახ. 3.1 აქედან გამომდინარეობს, რომ თითოეულ სიმბოლოს შეუძლია მიიღოს 16 შესაძლო ფერიდან, განსაზღვრული ყველაზე ნაკლებად მნიშვნელოვანი 4 ბიტის კომბინაციით. ატრიბუტის ბაიტის 4-6 ბიტი ამ სიმბოლოს ქვეშ აყენებს ფონის ფერს. ბოლო ბიტი 7, ვიდეო ადაპტერის რეჟიმის მიხედვით, განსაზღვრავს ან ამ სიმბოლოს ქვეშ ფონის სიკაშკაშეს (შემდეგ ფონს 16 სხვადასხვა ფერის მიღებაც შეუძლია) ან სიმბოლოს ციმციმი დადგენილიასტანდარტულად DOS).

აპარატის დატვირთვისას დამონტაჟებულია სტანდარტული პალიტრა, რომლის ფერის კოდები მოცემულია ცხრილში. 3.1. მოდით ვნახოთ რამდენიმე მაგალითი. მოციმციმე რეჟიმში ატრიბუტის ყველაზე მნიშვნელოვანი კბენის მნიშვნელობაა 8 სთაღნიშნავს არა ნაცრისფერ ფონს, არამედ შავ მბჟუტავ ხასიათს, რომლის ფერს მაინც განსაზღვრავს დაბალი კბენა; მაღალი კბენის ღირებულება 0 ჩ- წითელი ფონი მბჟუტავი სიმბოლოთი. ბიტი 7 დავალება ირთვება ქვეფუნქციით 03 სთფუნქცია 10 სთ შეფერხებები int 10 სთ.

ცხრილი 3.1

სტანდარტული პალიტრის ფერის კოდები

Ღია მწვანე

ფირუზი

ღია ფირუზი

მეწამული

ღია მეწამული

ყავისფერი

Ნათელი თეთრი

ორმაგი ბაიტიანი სიმბოლოების კოდები იწერება ვიდეოს ბუფერზე, რითაც ისინი უნდა გამოჩნდეს ეკრანზე: პირველი 80 * 2 ბაიტი შეესაბამება ეკრანის პირველ ხაზს, მეორე 80 * 2 ბაიტი შეესაბამება მეორეს და ა.შ. . ამ შემთხვევაში, ეკრანის შემდეგ ხაზზე გადასვლა განისაზღვრება არა ვაგონის დაბრუნების და ხაზის საკვების მართვის კოდებით, არამედ კოდის განთავსებით ვიდეო ბუფერის სხვა ადგილას. პროგრამიდან ვიდეო ბუფერზე წვდომის მისაღებად აუცილებელია ვიდეო ბუფერის სეგმენტის მისამართის შეყვანა სეგმენტის მონაცემთა ერთ-ერთ რეგისტრში. ამის შემდეგ, ამ ან ამ კომპენსაციების მითითებით, შეგიძლიათ ჩაწეროთ ვიდეოს ბუფერული ნებისმიერი ადგილი (უჯრედები). გამოთვალეთ უჯრედების ოფსეტური რიგის სვეტის კოორდინატებში (მწკრივი,კლმ) ამის გაკეთება შეგიძლიათ:

VidAddr \u003d (მწკრივი * 160) + (clm * 2)

დიდი რაოდენობით გამომავალი მონაცემებით, ინფორმაციის ჩარჩო წინასწარ ფორმირდება პროგრამის მონაცემების სეგმენტში მდებარე მომხმარებლის ბუფერში.

ჩამონათვალი 3.1.იწერება სტრიქონი ვიდეოს ბუფერზე 0- გვერდები .

ეკრანის გაწმენდა

; დააყენეთ ES სეგმენტის რეგისტრი ვიდეოს ბუფერის 0 გვერდზე, ხოლო ds მონაცემთა სეგმენტზე

; მოდით, სიმბოლოების სიმები გავუგზავნოთ ვიდეოს ბუფერულს, შესაბამისად მორგებული

; აღრიცხავს si, di და cx

cld; იყურე წინ

rep movsb;) *; გაგზავნეთ სიმბოლოების სიმები ატრიბუტებით ვიდეოს ბუფერზე

; შეაჩერე პროგრამა შედეგზე დასაკვირვებლად (წინააღმდეგ შემთხვევაში, პროგრამის დასრულების შემდეგ

; ბრძანების DOS მოთხოვნამ შეიძლება გამოწეროს გამომავალი)

; მონაცემთა ველები პროგრამის მონაცემთა სეგმენტში. სიმბოლოები და ატრიბუტები: 0B0h - მსუბუქი

; ფირუზი შავზე, 0E4h - წითელი ყვითელზე

msg db '*', 0B0h, 'T', 0E4h, 'E', 0E4, 'S', 0E4, 'T', 0E4, '*', 0B0h

ამ პროგრამის ფრაგმენტში, ნაჩვენები შეტყობინების სიმბოლოების კოდები იკვეთება მათი ატრიბუტებით. ვიდეოს მეხსიერებაში პირდაპირი ჩასაწერად გამოყენებული მონაცემთა ველების გენერირების ეს მეთოდი რთულდება, მაგრამ მისი მნიშვნელოვნად გამარტივება შესაძლებელია, თუ ჩვენებულ სიმბოლოებს აქვთ იგივე ატრიბუტები. ასე რომ, თუ ჩვენ გვსურს ტექსტის სიმბოლოების გამოტანა მონაცემთა ატრიბუტიდან ერთი ატრიბუტით 0E4 სთ, მაშინ ჩვენ უბრალოდ უნდა შევცვალოთ ერთი ბრძანების სტრიქონი, რომელიც აღნიშნულია ზემოთ მოცემულ ფრაგმენტში, სიმბოლოთი "*)" , სამზე. ამ შემთხვევაში, მონაცემთა ხაზის მითითება მიიღებს იმ ფორმას, რომელსაც ჩვენ შევეჩვიეთ.

mov si, ოფსეტური msg; წყაროს კომპენსაცია

mov di, 160 * 12 + 36 * 2; მიმღების კომპენსაცია (მე -13 რიგის 36 სვეტი),

mov cx, msglen; გადატანილი ბაიტების რაოდენობა

cld; იყურე წინ

mov ah, 0E4h; გამომავალი სიმბოლოების ატრიბუტი 0E4h - წითელი ყვითელზე

stosw; ატვირთე "პერსონაჟი + ატრიბუტი" ax- დან ვიდეო ბუფერულში (ax → es: di)

მარყუჟის ციკლი; გაიმეორეთ msglen ჯერ

; მონაცემთა ველები პროგრამის მონაცემთა სეგმენტში.

msg db '* ტესტი *'

ტექსტის გამოცემის ზემოთ მოცემული მეთოდი ფორმატირებულია ვიდეო ხაზის სიგრძის მიხედვით მარცხენა საზღვრიდან დეპრესიის სიმბოლოების ან აბზაცების გათვალისწინების გარეშე. გამოცემის პროცედურაში ელემენტარული ტექსტის რედაქტორის წესების დანერგვა მნიშვნელოვნად გაართულებს პროგრამას. ამ შემთხვევაში სასურველია გამოიყენოთ BIOS ფუნქციები შეტყობინებების საჩვენებლად.

მოსახერხებელია პროგრამების სტრუქტურის შემუშავება, რომლებიც ათვალიერებენ თვითნებურ ვიდეო გვერდებს, რომლებზეც ინფორმაცია ადრე ჩაწერილია ვიდეოს ბუფერის პირდაპირი პროგრამირებით, მოსახერხებელია ფუნქციის გამოყენება 05 int 10BIOS (გვ. 8.2.3.2).

8.2.3. BIOS თვისებები მითითება

8.2.3.1. შეაჩერე int 10 სთ. BIOS ვიდეოს მახასიათებლები

¨ ფუნქცია 00 სთ. მიმდინარე ვიდეოს რეჟიმის (ცხრილი 3.2) დაყენება, ეკრანის გაწმენდით (ეკრანის სწრაფი გაწმენდა ხორციელდება 06 ფუნქციითთ და 07თ)

დარეკეთ: AH \u003d 00 სთ,

ალ \u003d ვიდეოს რეჟიმი (რეჟიმის კოდი მითითებულია ქვედა 7 ბიტში, ხოლო ყველაზე მნიშვნელოვანი ბიტი 1-ზეა გამორთული ეკრანის გასუფთავება).

ზარი ანადგურებს რეგისტრებს ᲜᲐᲯᲐᲮᲘ,BP,SI დაDI.

ცხრილი 3.2

ტექსტური ტექსტური ვიდეო რეჟიმები და გვერდები სტანდარტულად VGAმხარდაჭერილი
თანამედროვე ვიდეო კონტროლერები

რეჟიმი

რეზოლუცია

ფერი

ნიშნის ზომა

მისამართი

გვერდები

სემიტონი

სემიტონი

3 (მონო )

სტანდარტულად, DOS იყენებს რეჟიმს 3 (თუმცა, კარგად ფორმირებულმა პროგრამამ უნდა შეამოწმოს ან დაადგინოს საჭირო ტექსტური რეჟიმი და შემდეგ აღადგინოს წინა).

¨ ფუნქცია 02 სთ. კურსორის პოზიციის დაყენება.

ადგენს კურსორის პოზიციას ეკრანზე ტექსტის კოორდინატებში, საიდანაც მოგვიანებით გამოჩნდება ტექსტი. მწკრივისა და სვეტის ნომრები ითვლება ზედა მარცხენა კუთხიდან. კურსორი შეიძლება განთავსდეს როგორც ტექსტში, ასევე გრაფიკის რეჟიმში, თუმცა გრაფიკის რეჟიმში, კურსორი არ ჩანს. BIOS მხარს უჭერს რვაამდე დამოუკიდებელ კურსორს, თითო გვერდისთვის (იხ. ცხრილი 3.2), მიუხედავად იმისა, რომელი გვერდია აქტიური. ფუნქცია 02

დარეკეთ: AH \u003d 02 სთ; BH\u003d გვერდის ნომერი (0,1, ... 7), ჩვეულებრივ 0;

DH \u003d ხაზი; DL\u003d სვეტი.

ზარი ანადგურებს რეგისტრებს ᲜᲐᲯᲐᲮᲘ,BP,SIდა DI.

¨ ფუნქცია 03 სთ. კურსორის პოზიციისა და ზომის წაკითხვა.

აბრუნებს კურსორის მდგომარეობის ამჟამინდელ კოორდინატებს არჩეულ გვერდზე. ეს საშუალებას იძლევა დროებით გადავიდეთ სამუშაოდ ეკრანზე სხვა ადგილას და შემდეგ დაბრუნდეთ ძველ ადგილზე. ფუნქცია 03 BIOS– ის გამოყენება შესაძლებელია DOS– ის ფუნქციებთან ერთად, ეკრანის გამომუშავების ორგანიზების მიზნით.

დარეკეთ: AH \u003d 03 სთ, BH \u003d გვერდის ნომერი (0,1, ... 7), ჩვეულებრივ 0.

Დაბრუნების: DH, DL \u003d მიმდინარე კურსორის პოზიციის მწკრივი და სვეტი,

CH, CL\u003d კურსორის გაფართოების პირველი და ბოლო ხაზები.

ზარი ანადგურებს AX, BP, SI და DI რეგისტრებს.

¨ ფუნქცია 05 სთ. ვიდეოს გვერდის ინსტალაცია.

ადგენს აქტიური ვიდეოს გვერდს (როგორც ტექსტური, ასევე გრაფიკული).

დარეკეთ: AH \u003d 05 სთ, AL \u003d გვერდის ნომერი (0, ..., 7).

ზარი ანადგურებს რეგისტრებს ᲜᲐᲯᲐᲮᲘ,BP,SIდა DI.

პროგრამა, რომელიც ახდენს ახლანდელი გვერდის ინსტალაციას, ვალდებულია სამუშაოს ბოლოს აღადგინოს ორიგინალი.

¨ ფუნქცია 06 სთ (07 სთ). ფანჯრის ინიცირება ან გადახვევა ზემოთ (ქვემოთ).

ფანჯრის ინიციალიზაცია ხდება მითითებული კოორდინატებით, სივრცეებით ASCIIმოცემული ატრიბუტით (AL \u003d 0), ან გადახვევა ფანჯრის შინაარსზე ხაზების მითითებული რაოდენობის ზემოთ (ქვემოთ) ( ალ\u003d სტრიქონების რაოდენობა). გადახვევისას, ქვედა ნაწილში (ზემოდან) გამოჩენილი ხაზები ივსება სივრცეებით ASCII მოცემული ატრიბუტით. ფუნქცია მოსახერხებელია ეკრანის ან მართკუთხა ფანჯრის სწრაფი დასუფთავებისთვის.

დარეკეთ: AH \u003d 06 სთ (07 სთ);

AL \u003d 0 - დასუფთავება, AL \u003d N (N\u003e 0) - გადახვევა ხაზები;

BH \u003d სიმბოლოების ატრიბუტი ფანჯარაში;

CH, CL \u003d მწკრივისა და სვეტის კოორდინატები (Y, X)ზედა მარცხენა კუთხე;

DH, DL \u003d მწკრივისა და სვეტის კოორდინატები (Y, X) ქვედა მარჯვენა კუთხე.

ზარი ანადგურებს რეგისტრებს ᲜᲐᲯᲐᲮᲘ,BP,SI,და DI

¨ ფუნქცია 08 სთ. კითხულობს პერსონაჟს და ატრიბუტს კურსორის მიმდინარე პოზიციაზე შერჩეულ გვერდზე.

დარეკეთ: AH \u003d 08 სთ, BH \u003d გვერდის ნომერი (0, ..., 7), ჩვეულებრივ 0.

Დაბრუნების: AH \u003d ხასიათის ატრიბუტი, AL \u003d ASCII-პერსონაჟის კოდი.

ზარი ანადგურებს რეგისტრებს BP,SI და DI

¨ 09 სთ ფუნქცია... კურსორის პოზიციაზე ეკრანზე მითითებული ატრიბუტით სიმბოლოს წერა. მუშაობს როგორც გრაფიკულ, ისე ტექსტურ რეჟიმში. გრაფიკული რეჟიმში, სიმბოლოები არ უნდა გადავიდნენ შემდეგ ხაზზე. ყველა კოდი AL განიხილება როგორც პერსონაჟის კოდი და არ აკონტროლებს კურსორის პოზიციას. სიმბოლოს ჩვენების შემდეგ, კურსორი გადავა შემდეგ პოზიციაზე 02h ფუნქციით. გამეორების ფაქტორი საშუალებას გაძლევთ გამოუშვათ იდენტური სიმბოლოების სიმები. ტექსტის რეჟიმში, სიმბოლო გამოდის მითითებული პუნქტით BL ატრიბუტი. გრაფიკულად - შინაარსი BL გავლენას ახდენს მხოლოდ სიმბოლოს ფერიზე და არა მის ქვემოთ არსებულ ფონზე. ნაცნობობის ქვეშ არსებული გრაფიკული გამოსახულება გადაიწერა.

დარეკეთ: AH \u003d 09 სთ, AL \u003d ASCII- პერსონაჟის კოდი,

BL\u003d სიმბოლოს ატრიბუტი (ტექსტის რეჟიმი) ან მხოლოდ სიმბოლოს ფერი (გრაფიკული რეჟიმი),

BH \u003dგვერდის ნომერი (0,1, ... 7), CX\u003d გამეორების სიჩქარე.

ზარი ანადგურებს რეგისტრებს ᲜᲐᲯᲐᲮᲘ,BP,SI და DI.

¨ ფუნქცია 0Ah. კურსორის პოზიციაზე ეკრანზე მიმდინარე ატრიბუტის მქონე პერსონაჟის ჩაწერა. ფუნქცია მუშაობს როგორც გრაფიკულ, ისე ტექსტურ რეჟიმში. სიმბოლო იღებს ატრიბუტს, რომელიც ადრე იყო მითითებული ამ პოზიციისთვის. ყველა ASCII კოდი AL– ში განიხილება როგორც პერსონაჟის კოდი და არ აკონტროლებს კურსორის პოზიციას (როგორც ფუნქცია 09h). სიმბოლოს ჩვენების შემდეგ კურსორი გადავა შემდეგ პოზიციაზეფუნქცია 02 სთ.

დარეკეთ: AH \u003d 0 აჰ, AL \u003d ASCII- პერსონაჟის კოდი,

BH \u003d გვერდის ნომერი (0,1, ... 7), CX \u003d გამეორების სიჩქარე.

ზარი ანადგურებს რეგისტრებს ᲜᲐᲯᲐᲮᲘ,BP,SI და DI.

¨ ფუნქცია 0Eh. დაწერეთ სიმბოლო მიმდინარე ატრიბუტით TTY რეჟიმში.

წერს პერსონაჟს ASCII კურსორის პოზიციაზე (წინასწარ განსაზღვრული 02 სთ) აქტიურ გვერდზე და კურსორი გადააქვს შემდეგ პოზიციაზე. კოდები ASCII: 07 სთ - დარეკეთ (BEL), 08 სთ - უკან დახევა (BS), 0 სთ - ვაგონის დაბრუნება (CR), 0 ა - ხაზოვანი თარგმანი (LF), განიხილება როგორც მენეჯერები და ხორციელდება შესაბამისი მოქმედებები. დანარჩენი საკონტროლო კოდები განიხილება როგორც სიმბოლოები და ნაჩვენებია ეკრანზე. კურსორი ავტომატურად გადაინაცვლებს შემდეგ სტრიქონზე წინა ხაზის დასრულების შემდეგ, ასევე ქვედა გვერდის შევსების შემდეგ ეკრანის გადახვევა 1 ხაზით.

დარეკეთ: AH \u003d 0Eh, AL \u003d ASCII- პერსონაჟის კოდი,

BL\u003d სიმბოლოს ფერი (მხოლოდ გრაფიკული რეჟიმისთვის),

BH \u003d გვერდის ნომერი (0,1, ... 7), ნაგულისხმევი არის აქტიური გვერდი.

¨ ფუნქცია 0ფჰ მიიღეთ ჩვენების რეჟიმი და მიმდინარე გვერდის ნომერი .

დარეკეთ: AH \u003d 0ფჰ.

Დაბრუნების: ალ = ჩვენების რეჟიმი, ახ\u003d ეკრანის სიგანე ტექსტის ფორმატში

BH \u003dაქტიური გვერდის ნომერი.

ზარი ანადგურებს რეგისტრებს BP,SI და DI

მაგალითი. მიმდინარე გვერდზე კურსორის პოზიციის დაყენების პროცედურა.

შესასვლელი : დჰ \u003d სიმებიანი (0 - 25), დლ\u003d სვეტი (0 - 79)

.......... აღადგინეთ რეგისტრები

¨ ფუნქცია 10 სთ. ქვეფუნქცია 03 სთ... ჩართეთ ციმციმის / სიკაშკაშის ბიტი.

განსაზღვრავს სიმბოლოს ატრიბუტის ყველაზე მნიშვნელოვანი ბიტი 7-ის დანიშნულებას: სიმბოლოს ციმციმი ან ფონის სიკაშკაშის გაზრდა.

დარეკეთ: X\u003d 1003 სთ, BL\u003d ატრიბუტის მე -7 ბიტის დანიშვნა:

0 - გაზრდილი სიკაშკაშე, 1 - ციმციმი (დაყენებულია სტანდარტულად).

ფუნქცია დაუყოვნებლივ აისახება ეკრანის ყველა სიმბოლოზე, რომლებსაც აქვთ ფონის ატრიბუტის ყველაზე მნიშვნელოვანი ბიტი.

¨ ფუნქცია 13 სთ. სიმბოლოების სიმების წერა მითითებული ატრიბუტებით.

წერს სტრიქონს ვიდეოკამერის მიმდინარე გვერდზე, დაწყებული მითითებული პოზიციიდან. კოდები ASCII: 07 სთ- დარეკეთ, 08 სთ- ნაბიჯი უკან, 0 ა - ხაზოვანი თარგმანი,
0 სთ - ვაგონის ბრუნვა განიხილება როგორც კონტროლი, დანარჩენი კი როგორც ხასიათი.

დარეკეთ: AH \u003d 13 სთ, AL \u003d ჩაწერის რეჟიმი:

0 - ხასიათის ატრიბუტი BL, სტრიქონი შეიცავს მხოლოდ სიმბოლოების კოდებს, კურსორი იღებს თავდაპირველ პოზიციას (ანუ შემდეგი სტრიქონის გამომავალი, თუ არ შეცვლით კურსორის პოზიციას, იწყება თავდაპირველად მითითებული პოზიციიდან);

1 - განსხვავდება 0 რეჟიმისგან იმით, რომ დაწერის შემდეგ კურსორი რჩება სტრიქონის ბოლოს;

2 - სტრიქონი შეიცავს მონაცვლეობით პერსონაჟების და ატრიბუტების კოდებს (ანუ თითოეული სიმბოლო აღწერილია 2 ბაიტით - ASCII-კოდი და ატრიბუტი), კურსორის ჩაწერის შემდეგ იღებს თავდაპირველ პოზიციას;

3 - განსხვავდება რეჟიმის 2-იდან იმით, რომ გამოცემის ბოლოს კურსორი რჩება ხაზის ბოლოს.

BH\u003d გვერდის ნომერი (0,1, ... 7), BL\u003d ატრიბუტი 0 და 1 რეჟიმებისთვის,

CX\u003d სიმბოლოების სტრიქონის სიგრძე (სიგრძე მოიცავს მხოლოდ სიმბოლოების კოდებს და არა ატრიბუტის ბაიტებს),

DX \u003d DH.DL\u003d კურსორის კოორდინატები (მწკრივი, სვეტი) ეკრანზე მწკრივის ჩვენების დასაწყისში,

ES: BP\u003d სტრიქონის დაწყების მისამართი მეხსიერებაში.

ყურადღება მიაქციეთ მისამართის დაყენების თავისებურებას !

1. DOS– ის ოპერაციულ გარემოში გაშვებული პროგრამები (სახელმძღვანელო) ნაგულისხმევად იყენებენ ტექსტის რეჟიმს 3, გვერდი 0.

2. უფრო ზოგადი დანიშნულების პროგრამებს უნდა მოეთხოვოთ მიმდინარე ვიდეო რეჟიმი და გვერდი (ფუნქცია) 0Fh, int 10h) მათი შემდგომი გამოყენებით გამოყენებულ BIOS ფუნქციებში.

.......

Mov v_mode, al; შენახვის რეჟიმი

Mov მიმდინარე_ გვერდი, bh; ხაზის შენახვა

3. თუ პროგრამა აჩვენებს სურათს სხვადასხვა გვერდზე, მაშინ ქმედებების თანმიმდევრობა თითოეულ გვერდზე შეიძლება იყოს შემდეგი (ნაგულისხმევი რეჟიმი "0" - გვერდი ითვლება):

გვერდის დაყენება ფუნქციის მიხედვით 05 სთ;

კურსორის პოზიციის დაყენება ფუნქციის მიხედვით 02 სთ;

BIOS ან DOS ტექსტის ფორმატირება ხაზით ხაზით.

მომავალში, გვერდების შინაარსის ციკლური დათვალიერება შეიძლება ორგანიზებულ იქნას მათი ფუნქციით ჩართვით 05 თ,int 10... პროგრამიდან გასვლისას, დარწმუნდით, რომ აღადგინეთ საჭირო "0" გვერდი. მაგალითად, თქვენ შეგიძლიათ ამის გაკეთება ასე.

..........

..........

; კლავიატურის ბუფერის ანალიზი DOS ფუნქციის 06h int 21h მიერ შეწყვეტის მიზნით დაჭერით; თვითნებური ღილაკი

mov ah, 06h; დალოდების შეყვანის ფუნქცია არ არის

mov dl, 0FFh; შეყვანა

out_program :; აღადგინეთ გვერდი ფუნქციით 05h, int 10h

..........

ვიდეო ბუფერული გვერდების თანმიმდევრული ფორმატირება შესაძლებელია პირდაპირი მეხსიერების პროგრამირების გამოყენებით. ამ შემთხვევაში, გვერდების შერჩევა ხორციელდება სეგმენტური რეესტრის შესაბამისი ინიცირებით ES (იხ. პუნქტი 8.2.2). გვერდების შინაარსის დათვალიერება ასევე შეიძლება განხორციელდეს მათი ფუნქციის გამოყენებით თანმიმდევრული გადართვით 05 სთ, int 10 სთ.

4. დემო პროგრამის სტრუქტურა, რომელიც შეისწავლის "მბჟუტავი - ფონის სიკაშკაშე" ფუნქციას (ფუნქცია) 10 სთ, ქვეფუნქცია 03 სთ, int 10 სთ).

ეკრანის გაწმენდა

..........

; ორი ადგილობრივი ფანჯრის ინიციალიზაცია, თითოეულს თავისი ატრიბუტი და ტექსტი. დანიშვნისას

; ფერი ატრიბუტებს ყველაზე მნიშვნელოვან (რიცხვით მე -7) ბიტი დაყენებულია "1" –ის ტოლი.

.........

გაგრძელება :; თვალის დახამხამება ჩართეთ

mov bl, 1; თვალის დახამხამება

; შემოიტანეთ 3 წამიანი დაგვიანება

.........

ჩართეთ გაზრდილი სიკაშკაშე

.........

; შემოიტანეთ 3 წამიანი დაგვიანება

.........

; კლავიატურის ბუფერის ანალიზი DOS ფუნქციის 06h int 21h მიერ შეწყვეტის მიზნით დაჭერით

; თვითნებური გასაღები

.........

jnz out_program; zf \u003d 0, სიმბოლო აწმყო, გასვლა

jmp გააგრძელე; zf \u003d 1, სიმბოლო არ არის, გააგრძელე მუშაობა

out_program :; მოციმციმეების აღდგენა (ნაგულისხმევი)

..........

გასასვლელი: mov ax, 4C00h; გამოძახეთ გასვლის ფუნქცია

.........

5. თუ პროგრამა ორგანიზებას უკეთებს მონაცემების გაუთავებელ ციკლს ეკრანზე BIOS ფუნქციებით (09 თ, 0აჰ, 0ეჰ, 13 წლისთ), მაშინ მისი შეწყვეტა შეუძლებელია კლავიშების დაჭერით Ctrl + C (ანუ გამოდით პროგრამიდან, რაც შეიძლება გაკეთდეს შესაბამისი DOS ფუნქციების გამოყენებით). ამისათვის, ჩართეთ ფუნქცია მარყუჟის სხეულში 0 სთ შეფერხებები Int 21 სთ.

8.2.3.3. შეაჩერე int 16 სთ

¨ ფუნქცია 00 სთ (10 სთ). კითხულობს კლავიატურის პერსონაჟს ლოდინით.

კითხულობს პერსონაჟს და სკანირებს კოდს წრიული შეყვანის ბუფერიდან. წაკითხვის შემდეგ, ისინი ამოღებულ იქნებიან ბუფერულიდან და იბრუნებენ რეესტრში ᲜᲐᲯᲐᲮᲘ. თუ ბუფერი ცარიელია, ელოდება შეყვანას.კლავიატურის თითოეული ღილაკი შეესაბამება ე.წ სკანირების კოდს, რომელიც შეესაბამება მხოლოდ ამ კლავიშს. ამ კოდს კლავიში აგზავნის ყოველ ჯერზე, როდესაც კლავიშზე დაჭერა ხდება და გამოიცემა და დამუშავდება BIOS– ში, წყვეტის დამმუშავებლის მიერ. ინტ 09... ფუნქცია 00 სთ საშუალებას იძლევა მივიღოთ ბიძგი კოდი ამ დამმუშავებლის ჩაგდების გარეშე. თუ დაჭერილი გასაღები შეესაბამება ASCII-სიმბოლო, შემდეგ:

AL - ASCII- პერსონაჟის კოდი, AH - გასაღების სკანირების კოდი.

თუ დაჭერილი ღილაკი შეესაბამება გაფართოებულს ASCII-კოდი, შემდეგ:

AL - 00 სთ, AH -გახანგრძლივებული ASCII-კოდი

დარეკეთ: AH \u003d 00 (83/84-გასაღები).

Დაბრუნების: AL \u003d ASCIIგასაღებაზე ნაჩვენები პერსონაჟის კოდი / 00 სთ,

ახ\u003d სკანირების კოდი / გაფართოებული ASCII-გასაღების კოდი.

ფუნქცია 10სთ (AH \u003d 10) - 00h გაფართოებული კლავიატურისთვის (101 / 102-) გასაღები
ASCII-გასაღებების კოდები F11,F12ასევე რიგი სხვა კომბინაციებისათვის.
საკონტროლო გასაღებების ან მათი კომბინაციების ნიშნად, მნიშვნელობის გარდა 00 , გამოყენებულია 0 აჰ, 0 სთ და E0 სთ.

¨ ფუნქცია 01 სთ (11 სთ). კლავიატურის ბუფერის შემოწმება მასში პერსონაჟის არსებობის შესახებ.

განსაზღვრავს ცირკულარულ ბუფერში არის თუ არა მომლოდინე სიმბოლოები; უბრუნებს ლოდინის დროშას და თავად სიმბოლოს, ასეთის არსებობის შემთხვევაში. ამასთან, სიმბოლო და მისი სკანირების კოდი არ არის მიღებული ბუფერიდან და მათი მიღება შეიძლება კვლავ, როდესაც ფუნქცია კვლავ გამოიძახებს 00 თ 16... ეს ფუნქცია არის ერთ-ერთი ასინქრონული ფუნქცია: შეყვანის ბუფერის მდგომარეობის დადგენის შემდეგ, იგი უბრუნებს კონტროლს
გრამი

დარეკეთ: AH \u003d 01 სთ (83/84-გასაღები), 11 სთ(101/102-გასაღები).

Დაბრუნების: ZF \u003d1 თუ ბუფერი ცარიელია და ZF\u003d 0, თუ ბუფერში არის სიმბოლო. Ამ შემთხვევაში:

AL \u003d ASCII- პერსონაჟის კოდი / 00 სთ, ახ\u003d გასაღების სკანირების კოდი / გაფართოებული ASCII-კოდი

ფუნქცია 11სთ (AH \u003d 11თ) -ფუნქციის გაუმჯობესებული ვერსია 01 გაფართოებული კლავიატურისთვის (101/102) -გასაღები) საშუალებას გაძლევთ გახანგრძლივდეთ ASCII-კოდების გასაღებები F11,F12ასევე რიგი სხვა კომბინაციებისათვის. საკონტროლო გასაღებების ან მათი კომბინაციების ნიშნად, მნიშვნელობის გარდა 00 , გამოყენებულია 0 აჰ, 0 სთ და E0 სთ.

¨ ფუნქცია 02სთ (12თ) მიიღეთ კლავიატურის დროშები.

აბრუნებს კლავიატურის დროშების ბაიტს, სადაც აღწერილია BIOS მონაცემთა არეალის ბაიტი (სიტყვა) დაწერილი მართვის კლავიშების მდგომარეობა მისამართზე 0000 თ: 0417

დარეკეთ: AH \u003d 02

Დაბრუნების: ა ლ\u003d კლავიატურის დროშების 1 ბაიტი.

ბაიტის ბიტებს აქვთ შემდეგი მნიშვნელობა:

0: 1 - მართალია ცვლა დაპრესილი

1: 1 დარჩა ცვლა დაპრესილი

2: 1 - Ctrl (ნებისმიერი) დაჭერილი

3: 1 - ალტ (ნებისმიერი) დაჭერილი

4: 1 - რეჟიმი გადახვევის დაბლოკვა

5: 1 - რეჟიმი ნუმ დაბლოკვა

6: 1 - რეჟიმი სახურავების დაბლოკვა

7: 1 - რეჟიმი ჩასმა აქტიური

ფუნქცია 12სთ (AH \u003d 12თ) -ფუნქციის გაუმჯობესებული ვერსია 02 გაფართოებული კლავიატურისთვის (101 / 102- გასაღები) გამოაქვს იგივე ბაიტის მნიშვნელობა, როგორც ფუნქცია 02 , მისამართით 0000 თ: 0417და, სურვილისამებრ, კლავიატურის მეორე სტატუსის ბაიტი (მისამართი 0000h: 0418h) შემდეგი მნიშვნელობებით:

0: 1 დარჩა Ctrl დაპრესილი 4: 1 - დაჭერილი გადახვევის დაბლოკვა

1: 1 დარჩა ალტ დაპრესილი 5: 1 - დაჭერილი ნუმ დაბლოკვა

2: 1 - მართალია Ctrl დაპრესილი 6: 1 - დაჭერილი სახურავების დაბლოკვა

3: 1 - მართალია ალტ დაპრესილი 7: 1 - დაჭერილი SysReg

8.2.3.4. პროგრამული ოპერაციების შეფერხება

პროგრამული შეფერხებები გამოიყენება იმ შემთხვევებში, როდესაც პროგრამის ნებისმიერ ეტაპზე აუცილებელია მისი შესრულების შეჩერება გარკვეული დროით. შესრულების ტიპის მიხედვით, პროგრამული შეფერხებები იყოფა ორ ტიპად: შეფერხებები, რომლებიც ხორციელდება პროგრამის მიერ ”ცარიელი” წყობილი მარყუჟების შესრულების საფუძველზე, და შეფერხებები, რომლებიც ხორციელდება კომპიუტერის სისტემის ტაიმერის საფუძველზე. 3.2 ჩამონათვალი აჩვენებს პირველი ტიპის შეფერხების განხორციელების მაგალითს.

ჩამონათვალი 3.2. პროგრამის შეფერხება დაფუძნებული მარყუჟების შესრულების საფუძველზე, ბრძანებით მარყუჟი.

Proc შეფერხება; ქვეპროგრამის დაყოვნება

Mov cx, N; N - გარე მარყუჟის მრიცხველი

გარე: დაჭერით cx; შეინახეთ გარე მარყუჟის მრიცხველის შინაარსი

Mov cx, 0; ჩვენ მოგაწვდით გამეორებების მაქსიმალურ რაოდენობას (64K ჯერ)

; შიდა მარყუჟი

შიდა: მარყუჟი შიდა; შიდა მარყუჟი

Pop cx; გარე მარყუჟის მრიცხველის შინაარსის აღდგენა

გარე მარყუჟი; გაიმეორეთ გარე ციკლი N ჯერ

3.2 ჩამონათვალში, პარამეტრი მოქმედებს როგორც მასშტაბის ფაქტორი შეფერხების დროისთვის

უკანალი \u003dN * შიდა მარყუჟის შესრულება.

ამ შემთხვევაში, დროის ყველაზე მცირე ერთეული (ანუ "მონიშვნა") არის შიდა მარყუჟის შესრულების დრო, რომელიც, თავის მხრივ, შედგება ბრძანების შესრულების 65535 ჯერ მარყუჟი... Პარამეტრი მიიღება ექსპერიმენტულად მოსაპოვებლად უკანა მხარე (წამში ან წამში), კონკრეტული კომპიუტერის სიჩქარის გათვალისწინებით.

ამ მაგალითის გათვალისწინებით, ამ მიდგომის უარყოფითი მხარეები აშკარაა, როდესაც საჭიროა პროგრამის დროში შეყოვნების შესრულების უზრუნველყოფა, გამოყენებული კომპიუტერის ტიპის მიუხედავად, ამიტომ გონივრულია, პროგრამული უზრუნველყოფის დაგვიანების დრო განისაზღვროს ტაიმერიდან პირდაპირ . ტაიმერის გამოსასვლელი სიგნალები წამში 18.2 ჯერ სიხშირით არ არის დამოკიდებული კომპიუტერის მუშაობაზე და ასრულებენ ყოველდღიური დროის მრიცხველის როლს. ამ მეთოდის განხორციელება იყენებს ფუნქციას 00 BIOS წყვეტს Int 1აჰ

Int 1A თ, ფუნქცია 00 ტაიმერის ციკლის მრიცხველის კითხვა.

სისტემის ტაიმერიდან BIOS– ის წყვეტის დამმუშავებელი ( Int 8) ითვლის წყვეტების რაოდენობას (ყოველ 55 წამში ან 18.2 ჯერ წამში) მეხსიერების ორმაგ სიტყვაში მისამართით 0040 სთ: 006С... ეს ფუნქცია აბრუნებს დაგროვებულ მნიშვნელობას (ორობითი კოდი) და აღადგენს მას 0 ... რეესტრში ალ ბრუნდება 0 , თუ მრიცხველის შინაარსი არ აღემატებოდა 24 საათის მნიშვნელობას (ამ მნიშვნელობის მიღწევის შემთხვევაში, მრიცხველი გადატვირთულია), წინააღმდეგ შემთხვევაში ის ბრუნდება AL \u003d1.

დარეკეთ: AH \u003d 00.

Დაბრუნების: CX: DX - სისტემის დროების ტკიპების რაოდენობა შუაღამიდან,

ალ - გარდამავალი დროშა დღეში.

დაბრუნების მნიშვნელობების მაგალითები CX: DX:

1 წმ 12 ან 18,

1 წუთი 04 44 ან 1092,

1 საათი 1 00 07 ან 65543,

24 საათი 18 00 B0 ან 1 573 040.

14 წამზე ნაკლები დაგვიანებისთვის, მხოლოდ რეგისტრის დაბალი ბაიტის გამოყენებაა შესაძლებელი DX

ჩამონათვალი 3.3. ამ მაგალითში დაყოვნება დაყენებულია 5 წამზე, რაც შეესაბამება ტაიმერის 91 რაოდენობას

..........

mov ah, 0; ტაიმერის ციკლის "კითხვის" ფუნქცია

int 1Ah; მიიღეთ ციკლის მრიცხველის მნიშვნელობა cx: dx

დაამატეთ dx, 91; დაამატეთ 5 წმ. dx- ში ყველაზე ნაკლებად მნიშვნელოვან სიტყვას

mov bx, dx; ჩვენ ვინახავთ საჭირო მნიშვნელობას bx- ში და ვასრულებთ

; დღის მრიცხველის მნიშვნელობების უწყვეტი შემოწმება

გაიმეორეთ: int 1Ah; ისევ მიიღეთ მრიცხველი

cmp dx, bx; შეადარე სასურველს

jne გამეორება; თუ არ არის ტოლი, ისევ გაიმეორეთ,

წინააღმდეგ შემთხვევაში შეფერხება დასრულდა

თუ დაგვიანების შემოტანა გჭირდებათ მაღალი სიზუსტით, მაშინ უნდა გამოიყენოთ ფუნქცია 86 სთ BIOS წყვეტს Int 15 სთ. ეს საშუალებას გაძლევთ განსაზღვროთ დაგვიანების დრო მიკროწამებში. შეფერხებები ჩართულია, სანამ დაგვიანება მიმდინარეობს. კონტროლი დაუბრუნდება პროგრამას მითითებული დროის გასვლის შემდეგ.

Int 15 სთ ფუნქცია 86

დარეკეთ: AH \u003d 86თ, СX : DX \u003d შეყოვნების დრო მიკროწამებში.

Დაბრუნების: CF \u003d 0 - ნორმალური შესრულება, CF \u003d 1 - ფუნქცია არ არის მხარდაჭერილი.

მაგალითი: CX:DX \u003d0098თ:9680 \u003d 10,000,000 μs \u003d 10 წმ.

8.3. ინდივიდუალური სამუშაოს ვარიანტები

1. ეკრანის ინიცირება კონკრეტული ატრიბუტით. გადააფარეთ იგი პატარა ადგილობრივი ფანჯრით, სხვა ფერის ატრიბუტით. ფანჯრის ცენტრალურ ნაწილში აჩვენეთ მეხსიერებადან ტექსტი (რამდენიმე სტრიქონი) ფანჯრის გადახვევის ციკლური განხორციელებით რამდენიმე სტრიქონში ზემოთ და ქვემოთ. გადახვევის ტიპის შეცვლა დადგენილია პროგრამული უზრუნველყოფის დაგვიანებით (2 ... 3 წმ.). უზრუნველყეთ პროგრამიდან გასვლა.

2. ორი ვიდეო გვერდის ინიცირება, თითოეულს თავისი ატრიბუტი და ჩაწერილი ტექსტი აქვს (ტექსტის ზოგიერთ პერსონაჟს სხვა ფერისგან განსხვავებული ფერი უნდა ჰქონდეს). ვიდეოს გვერდების ციკლური ცვლილების ორგანიზება 2 ... 3 წამში. უზრუნველყეთ პროგრამიდან გასვლა მიმდინარე გვერდის აღდგენით.

3. ორი ადგილობრივი ფანჯრის ინიცირება ეკრანზე. თითოეული ფანჯარა თავისი ატრიბუტით და ტექსტი რამდენიმე ხაზით. პირველი ფანჯრის ატრიბუტების ციკლური გადართვის ორგანიზება მეორეზე და უკან. გადართვის ციკლი დგინდება დროის დაგვიანებით 2 ... 3 წმ. უზრუნველყეთ პროგრამიდან გასვლა.

4. ეკრანზე 2 ადგილობრივი ფანჯრის ინიცირება. თითოეული ფანჯარა თავისი ატრიბუტით და ტექსტით რამდენიმე სტრიქონში. ტექსტის ციკლური გადართვის ორგანიზება ერთი ფანჯრიდან მეორეში, დროის შეყოვნებით 2 ... 3 წამი. უზრუნველყეთ პროგრამიდან გასვლა.

5. ეკრანზე გახსენით ფანჯარა_1 ატრიბუტით და ტექსტით რამდენიმე სტრიქონში. 2 ... 3 წამის დაგვიანების შემდეგ, ნაწილობრივ გადაფარეთ windows_2 სხვა ატრიბუტით და მასზე ტექსტი. მარყუჟის პროცესი. უზრუნველყეთ პროგრამიდან გასვლა.

6. ეკრანზე ინიციალეთ ადგილობრივი ფანჯარა ატრიბუტით (და ტექსტით), უთხარით მას დრიფტი ჰორიზონტალური (ვერტიკალური) მიმართულებით. ეკრანის საზღვრის მიღწევისთანავე, ფანჯარა ცვლის საწინააღმდეგო მიმართულებას. ადგილობრივი ფანჯრის გადაადგილების ნაბიჯი ეკრანის სივრცეში უნდა იყოს მრავალჯერ მცირე, ვიდრე თავად ეკრანის ზომა.

7. ეკრანზე, ადგილობრივი ფანჯრის ინიცირება ატრიბუტით (და ტექსტით). ბრძანების ღილაკზე დაჭერის შემდეგ, ფანჯარა იწყებს მისი ზომის შეცვლას (პულსირება), იზრდება და იკლებს გარკვეული პერიოდის განმავლობაში. ფანჯრის ზომის შეცვლის დრო უნდა იყოს გაცილებით ნაკლები ვიდრე პერიოდისა
ტალღოვანი.

8. ინიცირება მოახდინეთ ეკრანზე და მასში ადგილობრივი ფანჯარა მათი ატრიბუტებით. ტექსტური სისტემის რეჟიმის ორგანიზება ადგილობრივ ფანჯარაში კლავიატურის საშუალებით. უზრუნველყეთ ტექსტის რედაქტირების შესაძლებლობა, ასევე ფანჯრის გადახვევისას, როდესაც ის შეივსება.

9. ინიცირება მოახდინეთ ეკრანზე და მასში ორი პატარა ადგილობრივი ფანჯარა. გასაღებით<ტაბ\u003e ორგანიზება მიაქციეთ კურსორის ერთი ფანჯრიდან მეორეში. არჩეულია გასაღებით<ტაბ\u003e ფანჯარა უფრო კაშკაშა ხდება. უზრუნველყეთ პროგრამიდან გასვლა.

10. ინიცირება მოახდინეთ ეკრანზე და მასში ორი ადგილობრივი ფანჯარა. ცხრილის პირველი ნახევრის ჩვენება მარცხენა ფანჯარაში ASCIIდა მარჯვნივ - მეორე ნახევარი. უზრუნველყეთ ფანჯრების გაწმენდა და პროგრამიდან გასვლა.

11. ინიცირება მოახდინეთ ეკრანზე და მასში ორი ადგილობრივი ფანჯარა (თითოეულს აქვს საკუთარი ატრიბუტი და ტექსტი). მოაწყვეთ "ფონის სიკაშკაშე / ციმციმის" ბიტის ციკლური გადართვა. პროგრამიდან გასვლამ უნდა აღადგინოს ნაგულისხმევი ბიტის მნიშვნელობა.

12. ინიცირება მოახდინეთ ეკრანზე და მასში ორი ადგილობრივი ფანჯარა. ცხრილის მეორე ნახევარი მარცხენა ფანჯარაში აჩვენეთ ASCII ფსევდო-გრაფიკული სიმბოლოებით. კურსორის ნავიგაციის გამოყენებით გამოიყენეთ კლავიშები (¬, -, ®, ¯) მეორე ფანჯარაში სწორი ხაზების უწყვეტი დაკვრის შესაძლებლობის დასადგენად.

13. შეიმუშავეთ პროგრამა ეკრანზე ტექსტის ჩვენების პროგრამისთვის, ვიდეო პროგრამის პირდაპირი პროგრამირების საშუალებით, ფორმატირების ელემენტების გამოყენებით (მარცხენა საზღვარიდან ჩაღრმავება, ტექსტის შეტანა შემდეგ სტრიქონზე სიტყვის მარჯვენა საზღვრის გადაკვეთის შემდეგ).

შესასვლელი: DS:SI - მისამართი ASCI-სიმები, ახ- ატრიბუტები;

CX- ნაჩვენები სიმბოლოების რაოდენობა;

DH /DL - ხაზი ( მწკრივი) / სვეტი ( კლიმატი);

აბზაცი_L,აბზაცი_ - შევსების მინდვრები (სვეტებში) მარცხნივ და მარჯვნივ.

აუცილებელია ვიდეო ბუფერული მისამართის გაანგარიშების ოპტიმიზაცია ES:DI... პროცედურამ უნდა დააბრუნოს რეგისტრის ორიგინალი მნიშვნელობა ES.

14. ვიდეო მეხსიერების პირდაპირი პროგრამირების გამოყენებით, შეავსეთ ვიდეოს ბუფერის რამდენიმე გვერდი და შემდეგ ნახეთ ისინი (ეკრანი) ციკლური რეჟიმში. პროგრამიდან გასვლისას, დარწმუნდით, რომ მიმდინარე გვერდი აღდგება.

15. ASCII კოდირებაში გრაფიკული სიმბოლოების გამოყენებით მართკუთხედის დახატვის პროგრამის შემუშავება. ზედა მარცხენა კუთხის კოორდინატები (მწკრივი, სვეტი) და ქვედა მარჯვნივ კოორდინატები უნდა შეიტანოთ კლავიატურის შესაბამისი სტრიქონის შემდეგ.

8.4. ტესტის კითხვები

1. პროგრამისტისთვის შეყვანილი-გამომავალი ძირითადი სისტემის BIOS- ის მიერ მოწოდებული შესაძლებლობების მოკლე აღწერა, DOS- ის მომსახურების ფუნქციებთან შედარებით.

2. რამდენია ვიდეო მეხსიერების ოდენობა ერთი პერსონაჟის გამოსახულების და, შესაბამისად, მონიტორის ერთი ვიდეო გვერდი ტექსტურ რეჟიმში?

3. ვიდეოს ბუფერში მიეცით სიმბოლოს ატრიბუტის აღწერა.

4. მაკროების შემუშავება:

The ეკრანის გასუფთავება კურსორის ეკრანის ზედა მარცხენა კუთხეში განთავსებით;

The კურსორის განთავსება ეკრანზე თვითნებურ წერტილზე მეხსიერებაში მისი კოორდინატების მეხსიერებაში ცვლადების გამოყენებით მწკრივი და კლიმატი;

¨ შეტყობინების ჩვენება მეს სიგრძე ლენგი და ფერის ატრიბუტი ატრიბუტი ცვლადებით განსაზღვრული პოზიციიდან მწკრივი და კლიმატი.

5. რა BIOS ფუნქცია აძლევს მომხმარებელს ამომწურავ ინფორმაციას კლავიატურაზე დაჭერილი ღილაკის შესახებ.

ამ სტატიაში აღწერილია ფორმულის სინტაქსი და ფუნქციის გამოყენება მინ Microsoft Excel- ში.

აღწერა

აბრუნებს ყველაზე მცირე მნიშვნელობას არგუმენტების სიაში.

Სინტაქსი

MIN (ნომერი 1; [ნომერი 2]; ...)

ქვემოთ მოცემულია MIN ფუნქციის არგუმენტები.

    ნომერი 1, ნომერი 2, ... საჭიროა ნომერი 1, შემდეგი ციფრები არასავალდებულოა. 1-დან 255 ნომრამდე, რომელთა შორის გსურთ იპოვოთ ყველაზე პატარა.

შენიშვნები

    არგუმენტები შეიძლება იყოს რიცხვები, ან რიცხვები, რომლებიც შეიცავს სახელებს, მასივებს ან მითითებებს.

    განხილულია ლოგიკური მნიშვნელობები და ციფრების ტექსტური გამოსახულებები, რომლებიც პირდაპირ არის შესული არგუმენტების სიაში.

    თუ არგუმენტები არ შეიცავს ციფრებს, MIN ფუნქცია აბრუნებს 0-ს.

    არგუმენტები, რომლებიც წარმოადგენს შეცდომის მნიშვნელობებს ან ტექსტს, რომელთა რიცხვის გარდაქმნა შეუძლებელია, იწვევს შეცდომებს.

მაგალითი

მონაცემთა ცხრილის კოპირება შემდეგი ცხრილიდან და ჩასვით Excel- ის ახალი სამუშაო ფურცლის A1 უჯრედში. ფორმულების შედეგების საჩვენებლად აირჩიეთ ისინი და დააჭირეთ F2- ს, შემდეგ კი დააჭირეთ Enter- ს. შეცვალეთ სვეტების სიგანე, როგორც საჭიროა, ყველა მონაცემის სანახავად.

MIN ფუნქცია გამოიყენება შესწავლილ დიაპაზონში მინიმალური რაოდენობის მოსაძებნად და აბრუნებს შესაბამის რიცხვს.

MINA ფუნქცია გამიზნულია, რომ გამოკვლეულ მონაცემთა დიაპაზონში იპოვნოს მინიმალური მნიშვნელობა და დაუბრუნოს შესაბამის შედეგს.

Excel- ში MIN და MINA ფუნქციების გამოყენების მაგალითები

Excel ცხრილი შეიცავს მონაცემებს ოფისის მუშაკების დაბადების თარიღის შესახებ. განსაზღვრეთ დასაქმებულის მინიმალური ასაკი.

მონაცემთა ცხრილი:

გამოთვლებისთვის ვიყენებთ მასივის ფორმულას (სწორი შედეგია მხოლოდ Ctrl + Shift + Enter კომბინაციის დაჭერისას):


ერთადერთი არგუმენტია გამოთქმა YEAR (TODAY ()) - YEAR (B3: B10), რომელიც აბრუნებს რიცხვითი მნიშვნელობების მასივს, რომელიც ტოლია განსხვავება თითოეული დასაქმებულის მიმდინარე წელს და დაბადების წელს შორის. გაანგარიშების შედეგად მივიღებთ:


ფორმულა ავტომატურად ითვლიდა, რომ ყველაზე ახალგაზრდა თანამშრომელი 27 წლის იყო.



როგორ გამოვთვალოთ Excel– ში მინიმალური არაუარყოფითი მნიშვნელობების ჯამი

Excel ცხრილი შეიცავს რიცხვითი მონაცემების მრავალ სვეტს. იპოვნეთ მინიმალური არაუარყოფითი მნიშვნელობების ჯამი, რომელიც შეიცავს ამ სვეტებს. დამატებით იპოვნეთ ცხრილში არსებული ყველაზე მცირე რიცხვი.

წყარო ცხრილი:


მინიმალური არაუარყოფითი რიცხვების დასადგენად გამოიყენეთ მასივის ფორმულა:

!}

ერთადერთი არგუმენტია IF ფუნქცია, რომელიც ამოწმებს მონაცემთა მასივს დადებითი რიცხვების შემთხვევების დასადგენად. პირობების დაკმაყოფილების შემთხვევაში, MIN ფუნქცია მიიღებს მასივს, რომელიც შეიცავს მხოლოდ დადებით რიცხვებს, როგორც არგუმენტი. ანალოგიურად, ჩვენ ვიხილავთ მინიმალურ მნიშვნელობებს დარჩენილი სვეტებისთვის. მიღებული შედეგი (Ctrl + Shift + Enter):


იპოვნეთ ცხრილში ყველაზე მცირე რიცხვი ფორმულის გამოყენებით:

ფუნქციის არგუმენტები არის თითოეული MIN ფუნქციის მიერ დაბრუნებული მნიშვნელობები მითითებული მონაცემების ვექტორისთვის. გამოიყენეთ როგორც მასივის ფორმულა. შედეგი (Ctrl + Shift + Enter):


Excel– ის პირობებში იპოვნეთ მრავალი უმცირესი მნიშვნელობა

ზოგი კომპანია ადრე მუშაობდა ერთ პროდუქტის მომწოდებელთან. ამასთან, ცნობილი გახდა, რომ ზოგიერთი სხვა მომწოდებელი უკეთეს ფასებს გვთავაზობს. Excel ცხრილი შეიცავს საქონლის კოდებს და ფასდაკლებებს, რომლებიც სხვა მომწოდებლებს გვთავაზობენ. თუ ფასდაკლება არ არის, ლოგიკური მნიშვნელობა არის FALSE, თუ რიცხვი დადებითია, პროდუქტი უფრო ძვირი ღირს. იპოვნეთ ყველაზე დიდი ფასდაკლება იმავე პროდუქტებზე მხოლოდ სხვადასხვა მომწოდებლებისგან განსხვავებულ ფასებში.

წყარო ცხრილი:

გაანგარიშების ფორმულა (მასივის ფორმულა):

\u003d 0; "ფასდაკლება არ არის"; MINA (IF (A3: A15 \u003d D1; B3: B15; "")))) "class \u003d" formula "/\u003e

გაანგარიშების ალგორითმი:

  1. IF ფუნქცია ამოწმებს MINA პირობას (IF (A3: A15 \u003d D1; B3: B15; "" "))\u003e\u003e \u003d 0, სადაც MINA აბრუნებს მინიმალური ფასდაკლების მნიშვნელობას იმ ნივთისთვის, რომლის კოდი მითითებულია უჯრედში D1.
  2. MINA ფუნქცია ითვალისწინებს ლოგიკურ მნიშვნელობებს. შესაძლებელია ზოგიერთ პროდუქტზე ფასდაკლება არ მოხდეს (ყველა მნიშვნელობა მცდარია) და შედეგი იყოს 0 (ნული). ამ შემთხვევაში, ტექსტური სტრიქონი "ფასდაკლების გარეშე" დაუბრუნდება. მსგავსი მოვლენა მოხდება, თუ ყველა ფასდაკლება მხოლოდ დადებითი რიცხვია.
  3. თუ პირობა არ დაკმაყოფილდა, მაქსიმალური ფასდაკლება (უდიდესი უარყოფითი მნიშვნელობა) დაუბრუნდება მითითებული საქონლის კოდს.

მოდით გამოვთვალოთ უდიდესი ფასდაკლებები სხვა პროდუქტებზე. შედეგად, მივიღებთ (Ctrl + Shift + Enter):


Excel- ში MIN და MINA ფუნქციების გამოყენების თავისებურებები

MIN ფუნქციას აქვს შემდეგი სინტაქსი:

MIN (ნომერი 1; [ნომერი 2] ...)

არგუმენტების აღწერა:

  • number1 არის აუცილებელი არგუმენტი, რომელიც ახასიათებს პირველი რიცხვს დიაპაზონში, რომელშიც გსურთ იპოვოთ მინიმალური მნიშვნელობა;
  • [ნომერი 2] ... - მეორე და შემდგომი არასავალდებულო არგუმენტები, რომლებიც ახასიათებს მეორე და მომდევნო რიცხვებს შესწავლილი დიაპაზონიდან.

MINA ფუნქციას აქვს შემდეგი სინტაქსი:

MINA (მნიშვნელობა 1; [მნიშვნელობა 2] ...)

არგუმენტების აღწერა:

  • მნიშვნელობა 1 არის აუცილებელი არგუმენტი, რომელიც ახასიათებს პირველი შემთხვევას დიაპაზონში, რომელშიც გსურთ იპოვოთ მინიმალური მნიშვნელობა;
  • [მნიშვნელობა 2] ... არის მეორე და შემდგომი არასავალდებულო არგუმენტები, რომლებიც ახასიათებს შესწავლილი მონაცემთა დიაპაზონის მეორე და შემდგომ მოვლენებს.

შენიშვნები 1:

  1. სინტაქსის სხვაობა ხაზს უსვამს სემანტიკურ სხვაობას ორ ფუნქციას შორის: MIN მუშაობს მხოლოდ რიცხვითი მნიშვნელობებით, MINA დამატებით ითვალისწინებს ლოგიკური მონაცემების ტიპს.
  2. თუ მხოლოდ ტექსტური სტრიქონები, რომლებიც არ არის ციფრების ტექსტური გამოსახულებები, გადავიდა MIN და MINA ფუნქციების არგუმენტებად, ფუნქციები დაბრუნდება 0.
  3. MIN ფუნქცია, რომელიც მიუთითებს მონაცემთა დიაპაზონში, როგორც არგუმენტი, უგულებელყოფს არა მხოლოდ ლოგიკურ TRUE და FALSE- ს, არამედ ტექსტურ სტრიქონებს და ცარიელ უჯრედებს.
  4. თუ MIN ან MINA არგუმენტი არის ფორმულა, რომელიც აბრუნებს შეცდომას, ეს ფუნქციები ასევე დააბრუნებს შეცდომის კოდს. რეკომენდებულია მონაცემების შემოწმება IFERROR ფუნქციის გამოყენებით.
  5. MIN და MINA ფუნქციებს არ აქვთ ანალოგიური ლოგიკური ფუნქციები, როგორც ეს ხორციელდება, მაგალითად, COUNT (COUNTIF) ფუნქციაში, შესაბამისად, მონაცემთა გადამოწმება უნდა განხორციელდეს MIN და MINA შესრულებისას, მათთვის ლოგიკური ფუნქციების გადაცემა (IF, ISLIOSHIBKA და სხვები), როგორც არგუმენტი.

შენიშვნები 2:

  1. MINA აბრუნებს 0-ს (ნულს), თუ არგუმენტად მითითებული დიაპაზონი შეიცავს ტექსტის მნიშვნელობებს ან ციფრების ტექსტურ გამოსახულებებს.
  2. ორივე ფუნქცია გამოიყენება, რომ იპოვონ მინიმალური მნიშვნელობები არგუმენტად მიღებული მნიშვნელობების დიაპაზონში, მაგრამ მათ შორის რამდენიმე განსხვავებაა:
  • თუ MIN ფუნქციის ერთ-ერთი არგუმენტია ლოგიკური მნიშვნელობა (TRUE ან FALSE, რომელიც შეიძლება გარდაიქმნას რიცხვით მნიშვნელობებში, შესაბამისად, 1 და 0), ეს მნიშვნელობა ჩაითვლება გაანგარიშებაში. მაგალითად, ფუნქცია \u003d MIN (100; TRUE; FALSE; 10) დაუბრუნდება 0-ს.
  • თუ მითითებულია ლოგიკური მონაცემების შემცველი დიაპაზონი, როგორც არგუმენტირება MIN ფუნქციაზე, ეს უკანასკნელი მხედველობაში არ მიიღება. მაგალითად, \u003d MIN (A1: A4) დააბრუნებს 10-ს, თუ უჯრედის დიაპაზონი A1: A4 შეიცავს შემდეგ მონაცემებს: 100, TRUE, FALSE და 10, შესაბამისად.
  • გამოთვლებში ლოგიკური მონაცემების ჩასართავად გამოიყენეთ MINA ფუნქცია. მაგალითად, \u003d MINA- ს (A1: A4) დაწერა დაგიბრუნებთ 0 მნიშვნელობას (ლოგიკური FALSE ექვივალენტურია რიცხვითი 0-ისა), თუ A1: A4 უჯრედები შეიცავს მონაცემებს, როგორც წინა პარაგრაფში.

გსურთ მარცხენა ცხრილში Pivot Data ეტიკეტი იყოს ცენტრში არჩევაში, როგორც მარჯვენა ცხრილში. რომელ ღილაკს უნდა დავაჭირო?

გსურთ, რომ მარჯვენა მაგიდაში მოცემული "შემაჯამებელი მონაცემები" ეტიკეტი გამოჩნდეს ისე, როგორც მარცხენა ცხრილში. რომელ ღილაკს უნდა დავაჭირო?

641. რა მნიშვნელობა გამოჩნდება მონიშნულ უჯრედში, თუ იქ ფუნქცია \u003d MIN (H4: H8) შევა?

· 11479

გსურთ, რომ მარჯვენა უჯრედში რიცხვი ისეთივე ჩანდეს, როგორც მარცხნივ. მენიუს რომელი ელემენტი უნდა აირჩიოთ?

გსურთ, რომ ხაზგასმული C19 უჯრედი იყოს A19 - B19 უჯრედების სხვაობა. სად იწყებთ ფორმულის შეყვანას?

სივრცეში

· მინუსის ნიშანიდან

· ტოლობის ნიშანი

უჯრედის სახელიდან

644. თუ არჩეულ ადგილს 1, 2, 3 რიცხვებით გაჭიმავთ ქვედა მარჯვენა კუთხეში, მაუსის მარცხენა ღილაკის დაჭერისას, შედეგი იქნება ფრაგმენტში:

რა ინსტრუმენტი გამოიყენეს სურათის მისაღებად, მაგალითად A24: A28 უჯრედებში?

რომელ ჩანართზე უნდა მიმართოთ თქვენს პრეზენტაციას სლაიდების დასამატებლად?

"სათაურისა და ობიექტის" განლაგების დიზაინის შესაცვლელად გჭირდებათ სანიშნეზე გადასვლა?

რომელ ღილაკს უნდა დააჭიროთ, რომ ფრაგმენტის 1 – ში მონიშნული ტექსტი გადაიტანოთ მონიშნულ სიაში, როგორც ფრაგმენტ 2 – ში?

რომელ ღილაკს უნდა დააჭიროთ, რომ ფრაგმენტი 1-ში არჩეული ტექსტი გადაიყვანოთ იმავე ხედზე, როგორც ფრაგმენტ 2-ში?

რომელ ღილაკს უნდა დააჭიროთ, რომ ზედა მაგიდაზე სიტყვა "უჯრედი" ისე გამოიყურებოდეს, როგორც ქვედაში?

როგორ გადავიდე სლაიდშოუს რეჟიმში?

რას ნიშნავს სლაიდის ნომრის გვერდით მითითებული ხატი?

სლაიდი შედის მორგებულ ჩვენებაში

პრეზენტაციის ჩვენებისას სლაიდი გამოტოვებულია

· სლაიდი იყენებს ანიმაციის ეფექტებს

სლაიდი შეიცავს ვიდეო ფაილებს

მენიუს რომელი ელემენტი უნდა აირჩიოთ შედეგის მისაღებად, როგორც სურათზე მარჯვნივ?

რა მალსახმობით გამოვიყენო ბრაუზერი, რომ ვებ-გვერდები ნახოს?

თქვენ უნდა პირდაპირ ვებ – გვერდზე www.kremlin.ru. რომელ ველში უნდა მიუთითოთ მისამართი, რომელსაც ეძებთ?

რომელ ჩანართზე უნდა წავიდეთ საიტისგან ტექსტის დასაბეჭდად?