Використання операційної системи MS DOS для роботи із файлами
Зміст Розробка блок-схеми алгоритму Розробка Assembler програми Список використаної літератури
РОЗРОБКА ASSЕMBLER –ПРОГРАМИ model small ;======== СЕГМЕНТ ДАНИХ ==================================== dataseg f1 db 's:\Tasm\F1.txt',0 f2 db 's:\Tasm\F2.txt',0 f3 db 's:\Tasm\F3.txt',0 descr1 dw ? ;дескриптор файла 1 descr2 dw ? ;дескриптор файла 2 descr3 dw ? ;дескриптор файла 3 ZM db ?,?,? ;змінна через яку будем записувати дані у файл ;======== СЕГМЕНТ КОДIВ ===================================== codeseg start: ;========== ІНІЦІАЛІЗАЦІЯ РЕГІСТРА DS ========================= mov ax,@data mov ds,ax ;========= ВІДКРИТТЯ ФАЙЛІВ ================================= mov ah,3ch ;створення файла xor cx,cx ; mov dx,offset f1 ;записуєм адресу пам'яті f1 в регістр dx int 21h mov [descr1],ax ;зберiгаємо дескриптор файла
mov ah,3ch ;створення файла mov dx,offset f2 ;записуєм адресу пам'яті f2 в регістр dx int 21h mov [descr2],ax ;зберiгаємо дескриптор файла mov ah,3ch ;створення файла mov dx,offset f3 ;записуєм адресу пам'яті f3 в регістр dx int 21h mov [descr3],ax ;зберiгаємо дескриптор файла mov si,0000h ; m7: ;============ВВІД ЧИСЛА===================================== mov ah,1 ;вводимо старшу тетраду int 21h mov [ZM],al ;зберiгаємо ASCII-код старшої тетради sub al,30h ;ASCII-корекція cmp al,10 ;перевірка на літеру jc m1 ;введено цифру -> перехід по мітці sub al,7 ;введено літеру -> корекція для літери m1: mov dl,al ;зберігаємо старшу тетраду в dl shl dl,1 ;зсуваємо старшу тетраду на 4 розряди вліво shl dl,1 shl dl,1 shl dl,1 mov ah,1 ;вводимо молодшу тетраду int 21h mov [ZM+1],al ;зберiгаємо ASCII-код молодшої тетради sub al,30h ;ASCII-корекція cmp al,10 ;перевірка на літеру jc m2 ;введено цифру -> перехід по мітці sub al,7 ;введено літеру -> корекція для літери m2: add dl,al ;зберігаємо молодшу тетраду xor dh,dh ;розширюємо введене число до слова mov di,dx ;збегіраємо введене число в регістрі DI ;====== ПИШЕМО ВВЕДЕНЕ ЧИСЛО В ФАЙЛ f1 ==================== mov cx,2 ;заносимо кількість байтів, що необхідно записати mov bx,[descr1] ;заносимо дескриптор файлу F1 mov ah,40h ;функцiя запису до файла mov dx,offset ZM ;адреса буфера, де зберігаються дані для запису в фаїл int 21h ;виклик функцiї запису ;======== МНОЖИМО ВВЕДЕНЕ ЧИСЛО НА 12.5 =================== mov ax,di shl ax,1 ;ax=x*2 shl ax,1 ;ax=x*4 mov bx,ax shl bx,1 ;bx=x*8 add ax,bx ;ax=x*12 shr di,1 ;di=x/2 add ax,di ;ax=x*12.5 mov di,ax ;зберігаємо результат в DI ;============ ПЕРЕТВОРЮЄМО РЕЗУЛЬТАТ В ASCII =============== ;перетворення старшої тетради результату (0000 ХХХХ 0000 0000) add ah,30h ;додаємо 30h для одержання ASCII-коду cmp ah,3Ah ;перевірка на літеру jc m3 ;не літера -> перехід на мітку add ah,7 ;літера -> корекція для літери m3: mov [zm],ah ;зберігаємо ASCII-код тетради ;перетворення середньої тетради результату (0000 0000 XXXX 0000) shr al,1 ;зсув середньої тетради на 4 розряди вправо shr al,1 ; shr al,1 shr al,1 add al,30h ;додаємо 30h для одержання ASCII-коду cmp al,3Ah ;перевірка на літеру jc m4 ;не літера -> перехід на мітку add al,7 ;літера -> корекція для літери m4: mov [zm+1],al ;зберігаємо ASCII-код тетради ;перетворення молодшої тетради результату (0000 0000 0000 XXXX) mov ax,di ;відновлення and al,0Fh ;виділяємо молодшу тетраду add al,30h ;додаємо 30h для одержання ASCII-коду cmp al,3Ah ;перевірка на літеру jc m5 ;не літера -> перехід на мітку add al,7 ;літера -> корекція для літери m5: mov [zm+2],al ;зберігаємо ASCII-код тетради ;=========== ПИШЕМО ДОБУТОК В ФАЙЛ f2 ====================== mov cx,3 ;заносимо кількість байтів, що необхідно записати mov bx,[descr2] ;заносимо дескриптор файлу F2 mov ah,40h ;функцiя запису до файла mov dx,offset ZM ;адреса буфера, де зберіг.дані для запису в файл int 21h ;виклик функцiї запису ;========= ПРИ НЕОБХІДНОСТІ ПИШЕМО В ФАЙЛ f3 =============== mov ah,[zm] ;зчитуємо старший байт cmp ah,30h ;перевірка на '0' jne m6 ;перехід якщо не '0' mov cx,2 ;заносимо кількість байтів, що необхідно записати mov bx,[descr3] ;заносимо дескриптор файлу F3 mov ah,40h ;функцiя запису до файла mov dx,offset [ZM+1] ;адреса буфера, де зберігаються дані для запису в файл int 21h ;виклик функцiї запису m6: inc si ;(SI = SI +1) cmp si,0010h ;порівнюємо SI з кількістю чисел , що треба ввести (16) je m8 ;перехід якщо SI = 16 jmp m7 ;перехід на ввід наступного числа ;========= ЗАКРИТТЯ ФАЙЛІВ ================================= m8: mov ah,3Eh ;закриття файлу mov bx,[descr1] ;дескриптор файлу F1 int 21h
mov ah,3Eh ;закриття файлу mov bx,[descr2] ;дескриптор файлу F2 int 21h mov ah,3Eh ;закриття файлу mov bx,[descr3] ;дескриптор файлу F3 int 21h ;========== ЗАВЕРШЕННЯ ПРОГРАМИ =========================== mov ah,4ch ;функція передачі управління MS-DOS int 21h ;завершення програми end start
РОЗРОБКА БЛОК-СХЕМИ АЛГОРИТМУ
Обсяг пам’яті: 260 байт Кількість тактів, необхідних для виконання програми, не враховуючи виклики переривань: 5197
Рефераты по информатикеЗміст Розробка блок-схеми алгоритму Розробка Assembler програми Список використаної літератури РОЗРОБКА ASSЕMBLER –ПРОГРАМИ model small
Оценок: 436 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.