Так же в шаге "Шаг 7 - Команда MOV". Нам несколько раз встретилась команда MOV. Вот кусочек:
mov bx,1 mov cx,21 mov dx,offset Hellostr mov ah,40h
Смысл команды MOV в помещении из одного места в другое:
MOV получатель, потребитель
Смотрим
mov bx,1 ;поместить в bx 1 mov cx,21 ;поместить в cx 21 mov dx,offset Hellostr ;поместить в dx смещение строки mov ah,40h ;поместить в ah число 40h
Давайте воспользуемся кодом шага "Шаг 3 - Программа HelloWord" и знаниями из шага "Шаг 6 - Что такое регистры" про функцию 04Ch теперь мы знаем, что в младшем слове регистра AX (AL) можно вернуть код выполнения программы. Давайте пробовать:
MODEL TINY STACK 256 DATASEG Hellostr DB 'Hello First Step Site ' CODESEG start: mov ax,@data mov ds,ax mov bx,1 mov cx,21 mov dx,offset Hellostr mov ah,40h int 21h mov ah, 04Ch mov al, 1h int 21h end start
Собираем, запускаем:
Нечего не поменялась программа, как запускалась так дальше и запускается. Код возврата программы можно обрабатывать в BAT файлах. Пишем run.bat:
@echo off 7.exe if errorlevel 1 goto end echo error :end echo end
Слова error не будет показано, так как написано, если код возврата 1, то перейти на end. Вообще данная практика распространена до сих пор. Пример bat файла из каталога Windows (windows 98):
choice /c:yn if errorlevel 2 goto FORMAT_CANCEL if errorlevel 1 goto FORMAT :FORMAT_CANCEL ......