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

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

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

> помогите написть четыре задания, графикафаил,выражения
сообщение
Сообщение #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. Графика в видеорежиме: создание простейшего изображения:
квадрат, цвет заливки и границы указы
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


N337
****

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

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


Первая задача:
.186
.model tiny

locals

.code
.startup
               mov dl,'a'
               call ReadIntHex
               push ax
               mov dl,'b'
               call ReadIntHex
               push ax
               mov dl,'d'
               call ReadIntHex

               add ax,2
               jz ErrDiv0
               xchg cx,ax         ;cx = d + 2
               pop ax             ;ax = -b * 2
               shl ax,1            
               neg ax
               pop dx
               shl dx,3           ;dx = a * 8
               add ax,dx          ;ax = a * 8 - b * 2
               cwd
               idiv cx            ;ax = (a * 8 - b * 2) / (d + 2)

               push ax
               call WriteIntDec
               call Writeln
               pop ax
               call WriteIntHex
               call Writeln

               mov ax,4C00h
               int 21h

ErrDiv0:
               mov ah,9
               lea dx,MsgDiv0
               int 21h
               mov ax,4C01h
               int 21h

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

ReadDigit       proc
               mov ah,8
               int 21h
               mov dx,ax
               cmp Sign,0
               jne @@0
               inc Sign
               cmp al,'-'
               jne @@0
               neg Sign
               call WriteChar
               jmp ReadDigit
@@0:
               cmp al,'0'
               jb ReadDigit
               cmp al,'9'
               ja @@1
               sub al,'0'
               call WriteChar
               ret
@@1:
               cmp al,'A'
               jb ReadDigit
               cmp al,'F'
               ja @@2
               sub al,'A'-10
               call WriteChar
               ret
@@2:
               cmp al,'a'
               jb ReadDigit
               cmp al,'f'
               ja ReadDigit
               sub al,'a'-10
               call WriteChar
               ret
ReadDigit       endp

ReadIntHex      proc
               mov Sign,0
               call WriteChar
               mov dl,'>'
               call WriteChar
               call ReadDigit
               push ax
               call ReadDigit
               call Writeln
               pop dx
               shl dx,4
               or ax,dx
               xor ah,ah
               cmp Sign,0
               jl @@1
               ret
@@1:
               neg ax
               ret
ReadIntHex      endp

Writeln         proc
               mov dl,13
               call WriteChar
               mov dl,10
               call WriteChar
               ret
Writeln         endp

WriteHexDigit   proc
               mov dx,ax
               and dl,0Fh
               cmp dl,10
               jae @@1
               add dl,'0'
               call WriteChar
               ret
@@1:
               add dl,'A'-10
               call WriteChar
               ret
WriteHexDigit   endp

WriteSign       proc
               or ax,ax
               js @@1
               ret
@@1:
               neg ax
               mov dl,'-'
               call WriteChar
               ret
WriteSign       endp

WriteIntHex     proc
               call WriteSign
               rol ax,4
               call WriteHexDigit
               rol ax,4
               call WriteHexDigit
               rol ax,4
               call WriteHexDigit
               rol ax,4
               call WriteHexDigit                                
               ret
WriteIntHex     endp

WriteIntDec     proc
               call WriteSign
               push 0
               mov cx,10
@@1:
               xor dx,dx
               div cx
               add dx,'0' or 0FF00h
               push dx
               or ax,ax
               jnz @@1
@@2:
               pop dx
               or dx,dx
               jz @@exit
               mov ah,2
               int 21h
               jmp @@2
@@exit:
               ret
WriteIntDec     endp

.const
MsgDiv0         db 'Division by zero',13,10,'$'

.data?
Sign            db ?

end


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

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


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

 





- Текстовая версия 18.05.2024 9:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name