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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


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 -


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


N337
****

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

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


Покажи, какие "нерабатающие обрывки программ" у тебя есть...


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





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

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


unsure.gif Извини что я отвечаю бод никам Darkmaximus я обычно Darkmax ,нижнее сообщение тоже мое, но с моим ником что то случилось
и я почему-то вижу себя как ГОСТЬ-Darkmax- поэтому пришлось зарегится как Darkmaximus. Насчет обрывов программ ты их уж
сделал ,а 2) и 3) задания я в принципи не могу сделать потому что неполучается создать фаил а потом выводить из него что-то или
заменять что-то или темболее выводить что-то в новый фаил. По третиму заданию у меня есть обрывки прог но они очень нелепые
и показывать нечего просто смех (горький смех).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


N337
****

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

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


Написал решение задания №2, п. 1-4. Не могу выложить сюда из-за временных проблем с закачкой файлов на форуме. Darkmaximus, скинь мне на ICQ адрес, куда можно отправить код.

Сообщение отредактировано: xds -


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





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

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


xds можеш отправить на max1986@atnet.ru это мой мыльник
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


N337
****

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

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


Отправил два письма. Долетели?


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





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

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


:D получил твой проги.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


СПОСИБО!!!! :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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