Вот так компиллируется, но у тебя тама все равно каша ;)
| Код | .model small .STACK 100h ;100h памяти под сегмент mSize equ 2 ;Размер матрицы
data segment ;Начало сегмента данных matrix db mSize*mSize dup(?)
prompt1 db 'Введите число:','$' endl db 13,10,'$' ; перевод на след. строчку prompt2 db 'Полученая Матрица:','$' ; endl db 13,10,'$' ; db 13,10,'$' ; data ends ;Конец сегмента данных
code segment ;Начало сегмента assume cs:code,ds:data ;Обещаем выставить cs=code,ds=data start: ;Точка входа в программу
mov ax,seg data mov ds,ax
;doEnterMatrix proc near - процедура ввода
doEnterMatrix proc near ;Начало описания процедуры ввода mov si,OFFSET prompt1 ;ds:si указывает на строку prompt1 call doPrintStr ;Печатаем на экране строку prompt1
push es ;Сохраняем es в стеке push di ;Сохраняем di в стеке push si ;Сохраняем si в стеке push cx ;Сохраняем cx в стеке push ax ;Сохраняем ax в стеке doEnterMatrix endp ;Конец описания процедуры
;doOutMatrix proc near - процедура вывода
doOutMatrix proc near ;Начало описания процедуры вывода
mov si,OFFSET prompt2 ;ds:si указывает на prompt2 call doPrintStr ; pop ax ;Восстанавливаем ax из стека pop cx ;Восстанавливаем cx из стека pop si ;Восстанавливаем si из стека pop di ;Восстанавливаем di из стека pop es ;Восстанавливаем es из стека ret ;Выходим из процедуры
; doOutMatrix proc near endp doOutMatrix endp
; doPrintStr - Вывод DOS строки на экран
doPrintStr proc near ;Начало описания процедуры push dx ;Сохраняем dx в стеке push ax ;Сохраняем ax в стеке mov ah,09h ;ah = 09h mov dx,si ;dx = si int 21h ;Прерывание 21h(DOS) выв. строки
pop ax ;Восстанавливаем из стека ax pop dx ;Восстанавливаем из стека dx ret ;Выходим из процедуры doPrintStr endp ;Конец описания процедуры
code ends ;Конец сегмента кода end start ;Конец программы[/color]
| |