Формирование массива из 10 двухбайтных чисел. Блоки дополнений, страница 3

MOV BL, [SI]                          ;

SHR BL, 4                             ;

SAL BL, 4                             ;

SUB BH, BL                            ;

CMP BH, 0Ah                           ;

JS M15                                ;

ADD BH, 7h                            ;

M15:          ADD BH, 30h                           ;

MOV DL, BH                            ;

INT 21h                               ;

; Конец Вывода на экран четвертого символа

ADD SI, 2

; Вывод символов "h"

MOV DL, 68h             ;

INT 21h                 ;

MOV DL, 0h              ;

INT 21h                 ;

; Конец Вывода символов "h"

DEC CX

JNZ M16

; Ждем ввод символа с клавиатуры

M22:          MOV AH, 08h                         ;

INT 21h                             ;

; Конец Ждем ввод символа с клавиатуры

; К О Н Е Ц   В Т О Р О Г О   Б Л О К А   Д О П О Л Н Е Н И Й

MOV ax, 4c00h

INT 21h

exampl endp

_TEXT ENDS

_DATA SEGMENT USE16 PARA PUBLIC 'DATA'

a DW 10 DUP(?)

b DW 10 DUP(?)

s DB 'BBeguTe e/1emeHT $'

q DB 'TTo/1y4eHHb1u maccuB $'

w DB '3agaHHb1u maccuB $'

_DATA ENDS

END START

2

_TEXT SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:_TEXT, DS:_DATA

.386

.387

exampl      PROC NEAR

ORG 00H

START:     MOV AX, _DATA

MOV DS, AX

; П Е Р В Ы Й   Б Л О К   Д О П О Л Н Е Н И Й

; Открытие файла input.txt

MOV AL, 00h             ;

MOV AH, 3Dh            ;

LEA DX, s                   ;

INT 21h                       ;

MOV BX, AX              ;

; Конец Открытие файла input.txt

LEA SI, a

M11:          ADD SI, 1

; Чтение из файла 1го символа                                                           

MOV AH, 3Fh               ;

MOV CX, 1                    ;

LEA DX, b                      ;

INT 21h                          ;

; Конец Чтение из файла 1го символа

MOV DI, DX

MOV AL, [DI]

SUB [DI], AL

; Переводим прочитанный символ в 16ый код

CMP AL, 60h                                  ;

JS M3                                        ;

SUB AL, 20h                                  ;

M3:            SUB AL, 30h                                  ;

CMP AL, 10h                                  ;

JS M4                                        ;

SUB AL, 7h                                   ;

; Конец Переводим прочитанный символ в 16ый код

; Заносим прочитанный символ в массив a

M4:            SAL AL, 4                       ;

MOV [SI], AL                                     ;

; Конец Заносим прочитанный символ в массив a

; Чтение из файла 2го символа

MOV AH, 3Fh               ;

INT 21h                          ;

; Конец Чтение из файла 2го символа

MOV AL, [DI]

SUB [DI], AL

; Переводим прочитанный символ в 16ый код

CMP AL, 60h                           ;

JS M5                                        ;

SUB AL, 20h                             ;

M5:            SUB AL, 30h                              ;

CMP AL, 10h                             ;

JS M6                                        ;

SUB AL, 7h                                ;

; Конец Переводим прочитанный символ в 16ый код

; Заносим прочитанный символ в массив a

M6:            ADD [SI], AL                  ;

; Конец Заносим прочитанный символ в массив a

SUB SI, 1

; Чтение из файла 3го символа

MOV AH, 3Fh                                   ;

INT 21h                                              ;

; Конец Чтение из файла 3го символа

MOV AL, [DI]

SUB [DI], AL

; Переводим прочитанный символ в 16ый код

CMP AL, 60h                           ;

JS M7                                        ;

SUB AL, 20h                             ;

M7:            SUB AL, 30h                             ;

CMP AL, 10h                             ;

JS M8                                        ;

SUB AL, 7h                                   ;

; Конец Переводим прочитанный символ в 16ый код

; Заносим прочитанный символ в массив a

M8:            SAL AL, 4                        ;

MOV [SI], AL                                     ;

; Конец Заносим прочитанный символ в массив a

; Чтение из файла 4го символа

MOV AH, 3Fh                                   ;

INT 21h                                              ;

; Конец Чтение из файла 4го символа

MOV AL, [DI]

SUB [DI], AL

; Переводим прочитанный символ в 16ый код

CMP AL, 60h                                  ;

JS M9                                              ;

SUB AL, 20h                                  ;

M9:            SUB AL, 30h                                  ;