Шаг 7 - Команда MOV

Так же в шаге "Шаг 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	

Собираем, запускаем:

7_1.gif (2932 b)

Нечего не поменялась программа, как запускалась так дальше и запускается. Код возврата программы можно обрабатывать в 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
......

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.