Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2008, 13:34   #1
Ase
Новичок
Джуниор
 
Регистрация: 03.11.2008
Сообщений: 1
По умолчанию Одномерные масивы на i8080

Последовательно переписать все значения большие А0 из одного массива с 16 элементами в другой,остаток массива заполнить нулями.
Вывести количество таких значений.
01 A3 00 FE 77 01 ....
результат
A3 FE 00 00 00 ....
Ase вне форума Ответить с цитированием
Старый 04.11.2008, 08:25   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

вот листинг...... имеется полноценный интерактивный ввод массива с коррекцией ввода....
Код:
.model	small
.stack	100h

buf_0Ah struc
lenbuf db 3
len_in db 0
buf_in db 3 dup (0)
ends

.data
buff buf_0Ah <>
inputMsg db 13,10,'Введите',4 dup (' '),'элемент',13,10,'$'
inputErrorMsg db 13,10,'Ошибка ввода',13,10,'$'

outputMas db 13,10,'Массив:',13,10,'$'
outputLen db 13,10,'Колличество: $'

HexTable db '0123456789ABCDEF'

mas1 db 16 dup (0)
mas2 db 16 dup (0)
len dw 0
.code

;процедура конверитрования байта в символьный формат
Convert proc
mov bh,10
div bh
add ah,'0'
add al,'0'
cmp al,'0'
jne ConvertEnd
mov al,' '
ConvertEnd:
ret
Convert endp


;процедура конвертирования байта в шестнадцатиричные символы
ConvertHex proc
mov bh,16
div bh
mov bx,offset HexTable
push ax
xlat
mov dl,al
pop ax
mov al,ah
xlat
mov dh,al
ret
ConvertHex endp

;процедура конвертирования шестнадцатиричных символов в байт
ConvertToDec proc
sub al,'0'
cmp al,9
jna ConvertToDec_n1
sub al,7
ConvertToDec_n1:
sub bl,'0'
cmp bl,9
jna ConvertToDec_n2
sub bl,7
ConvertToDec_n2:
mov bh,16
mul bh
add al,bl
ret
ConvertToDec endp

;процедура ввода
input proc
xor si,si
inputMain:
 mov ax, si
 inc ax
 call Convert
 mov inputMsg[10],al
 mov inputMsg[11],ah
 mov ah,9
 mov dx,offset inputMsg
 int 21h
 mov ah,0Ah
 mov dx,offset buff
 int 21h
 mov al,byte ptr buff[1]
 cmp al,2
 jne input_error
 xor di,di
 mov cx,2
check_loop:
 cmp buf_in[di],'0'
 jb input_error
 cmp buf_in[di],'F'
 ja input_error
 cmp buf_in[di],'A'
 jnb nextCheck
 cmp buf_in[di],'9'
 ja input_error
 nextCheck:
 inc di
 loop check_loop
 jmp nextInput
input_error:
 mov ah,9
 mov dx,offset inputErrorMsg
 int 21h
 jmp inputMain
nextInput:
 xor ah,ah
 mov al,byte ptr buff[2]
 mov bl,byte ptr buff[3]
 call ConvertToDec
 mov mas1[si],al
 inc si
 cmp si,16
 jne inputMain
ret
input endp

;Копирование всех, больших A0h
copy proc
xor si,si
xor di,di
mov cx,16
MainCopy:
mov ah,mas1[si]
cmp ah,160
jna NotCopy
mov mas2[di],ah
inc di
NotCopy:
inc si
loop MainCopy
mov len,di
ret
copy endp


;Вывод на экран массива
outputM proc
mov ah,9
mov dx,offset outputMas
int 21h

xor di,di
mov cx,16
outputMain:
xor ah,ah
mov al,mas2[di]
call ConvertHex
push dx
mov ah,2
int 21h
pop dx
mov dl,dh
mov ah,2
int 21h
mov dl,' '
int 21h
inc di
loop outputMain
ret
outputM endp

;процедура вывода колличества
outputL proc
mov ah,9
mov dx,offset outputLen
int 21h
mov ax,len
call Convert
push ax
mov dl,al
mov ah,2
int 21h
pop ax
mov dl,ah
mov ah,2
int 21h
mov dl,13
int 21h
mov dl,10
int 21h
ret
outputL endp

start:
mov	ax,@data
mov	ds,ax
xor	ax,ax

call input
call copy
call outputM
call outputL

mov ah,8
int 21h

mov	ax,4c00h
int	21h
end	start
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++/ Одномерные массивы BennyBenassy Общие вопросы C/C++ 6 23.02.2009 14:27
Pascal масивы Devikss Помощь студентам 2 19.06.2008 17:20
Транспонирование матрицы на i8080 RANDOM223 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 29.04.2008 17:33
динамические масивы mrandrey Общие вопросы Delphi 14 11.04.2007 15:14