IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> помогите написть четыре задания, графикафаил,выражения
Гость_Darkmax
сообщение 1.12.2004 2:02
Сообщение #1


Гость






sad.gif Пожалуйста помогите совсем атчаился не могу написать эту работу а от этого зависит практически вся моя дальнейшая жизнь, пора уже сдавать а у меня ни фига нет кроме неработающих обрывков программ. Не дается мне что то это язык низкого уровня
(ASSEMBLER 16 разрядный то-ест под DOS). Заранее благодарен.


1. Найти значение выражения.
Переменные - двузначные 16-ричные числа - вводятся пользователем с клавиатуры.
Ответ вывести на экран в 10-ой и 16-ой системах счисления. Предусмотреть случай, когда делитель равен нулю.
(a*8-b*2)/(d+2)

2. Работа с файлами, создание, чтение, запись в файл.
Общее задание: Написать программу по созданию текстового файла на основном диске.
Занести в него несколько произвольных строк.
1). Вывести на экран i-ую строку.
2). Заменить все символы «i» на символы «j» в k-ой строке.
3). Вывести на экран i-ое слово из j-ой строки.
4). Вывести i-ую строку в новый файл.
5). Нахождение файла на диске, удаление файла с диска, переименование файла

3. графика в текстовом режиме:
ввод и перемещение по экрану произвольного символа:
Сверху вниз или по диагонали из верхнего правого угла в левый нижний угол.

4. Графика в видеорежиме: создание простейшего изображения:
квадрат, цвет заливки и границы указы
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
xds
сообщение 1.12.2004 8:18
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Задача 4:
.model tiny

locals

.code
.startup
               mov ah,0Fh        ;запоминаем текущий видеорежим
               int 10h
               xor ah,ah
               push ax

               lea dx,PromptX    ;чтение входных данных
               call ReadWord
               mov x,ax
               lea dx,PromptY
               call ReadWord
               mov y,ax
               lea dx,PromptW
               call ReadWord
               mov w,ax
               lea dx,PromptH
               call ReadWord
               mov h,ax
               lea dx,PromptC
               call ReadWord
               mov Color,al

               mov ax,13h        ;установка графического режима
               int 10h

               mov ax,0A000h
               mov es,ax

               mov ax,320
               mul y
               add ax,x
               xchg di,ax
               mov bx,w
               mov dx,h
               mov al,Color
               call DrawRect

               xor ax,ax          ;ждем нажатия любой клавиши
               int 16h
               pop ax            ;восстанавливаем прежний видеорежим
               int 10h
               mov ax,4C00h      ;выход
               int 21h

;Вывод прямоугольника
;ES:DI = начальный адрес, BX = ширина, DX = высота, AL = цвет заливки
DrawRect      proc
               or dx,dx
               jz @@exit
               or bx,bx
               jz @@exit
               cld
@@1:
               mov cx,bx
               rep stosb
               add di,320
               sub di,bx
               dec dx
               jnz @@1
@@exit:
               ret
DrawRect      endp

WriteChar       proc
               push ax
               mov ah,2
               int 21h
               pop ax
               ret
WriteChar       endp

ReadWord        proc
               push bp
               mov bp,sp
               sub sp,2
Result          = word ptr [bp-2]

               mov ah,9
               int 21h

               mov Result,0
@@1:
               mov ah,8
               int 21h
               cmp al,13
               je @@2
               cmp al,'0'
               jb @@1
               cmp al,'9'
               ja @@1
               mov dx,ax
               call WriteChar
               sub al,'0'
               xor ah,ah
               xchg cx,ax
               mov ax,10
               mul Result
               add ax,cx
               mov Result,ax
               jmp @@1
@@2:
               mov dl,13
               call WriteChar
               mov dl,10
               call WriteChar
               mov ax,Result
               mov sp,bp
               pop bp
               ret
ReadWord        endp

.const
PromptX         db 'x> $'
PromptY         db 'y> $'
PromptW         db 'Ширина> $'
PromptH         db 'Высота> $'
PromptC         db 'Цвет> $'

.data?
x               dw ?
y               dw ?
w               dw ?
h               dw ?
Color           db ?

end


Сообщение отредактировано: volvo - 6.11.2009 23:32


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 15.08.2025 3:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"