PDA

Просмотр полной версии : [Обсуждение] ASM - разбор кода, решение ошибок, примитивные программы, нужна помощь.


userinit.exe
05.04.2013, 18:08
В общем типичная универская программа обучения, буду постить сюда то с чем у меня возникают проблемы и вообще все в принципе.

IDEAL
MODEL SMALL
STACK 256

DATASEG
tabl db 256 dup(0),"$" ;таблица символов
ent db 10,13,"$" ;энтер
prb db 0,"$" ;пробел
tir db 0,"$" ;тире
nom db 0,"$" ;номер
symb db 0, "$" ;символ
CODESEG
START:

MOV AX,@data
MOV DS,AX

mov cx,7fh ;присваивание сх значения 7f=128
mov bx,0
push cx
push cx

mov [tir],2dh ;тире
mov [prb],0h ;пробел


cikle: ;цикл ввода в TABL значений таблицы ASCII
mov [tabl+bx], cl
inc bx
loop cikle ;конец цикла (cx=0)

pop bx ;bx=7f
pop cx ;cx=7f
mov [symb], 1
sub bx, 1

sykle: ;цикл вывода (энтер-символ-пробел-тире-пробел-номер)
mov ah, 9
lea dx,[ent] ;энтер
int 21h

mov ah, 2
mov dl, [tabl+bx] ;символ
int 21h

mov ah, 2
mov dl,[prb] ;пробел
int 21h

mov ah, 2
mov dl,[tir] ;тире
int 21h

mov ah, 2
mov dl,[prb] ;пробел
int 21h

MOV AH,9
LEA DX,[symb] ;символ
INT 21H

;call perevod

dec bx
inc [symb]
loop sykle ;конец цикла вывода

;proc perevod;процедура перевода 16-ых чисел в 10-ые


exit:
mov ah,4ch
int 21h
end start

Продолжение следует...

twice
05.04.2013, 21:39
Должно быть :

mov dx, Offset STRA

Аналогично в 21,22 строках должно быть "Offset STRA/STRB". Только я не очень понимаю, чего ты хочешь сделать с ними в регистре сх.

userinit.exe
12.05.2013, 21:34
Добрались от примитива к бреду...


Дан файл произвольной длины
Пользователь вводит с клавы путь к файлу
Кодируем каждый символ(14h=41h)
Процедуры
Обработка ошибок


Хотя-бы наведите на путь истинный... каким макаром мне перекодировать символы(14h=41h)?

twice
13.05.2013, 10:53
Хотя-бы наведите на путь истинный... каким макаром мне перекодировать символы(14h=41h)?

Циклический сдвиг в право (ror) или в лево (rol) на 4 разряда (это для 1 байтовая переменная).