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

Страницы работы

Содержание работы

Задание:

Сформировать массив из 10 двухбайтных чисел.

Переписать во второй массив все положительные числа.

Текст программы:

1

_TEXT SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:_TEXT, DS:_DATA

.386

.387

exampl      PROC NEAR

ORG 00H

START:     MOV AX, _DATA

MOV DS, AX

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

;Очищение экрана

MOV CX, 50             ;

M3:            MOV AH, 02h           ;

MOV DL, 0Dh          ;

INT 21h                     ;

MOV DL, 0Ah          ;

INT 21h                     ;

DEC CX                    ;

JNZ M3                     ;

;Конец очищения экрана

;Загружаем в SI адрес a

LEA SI, a            ;

;Конец Загрузки в SI адрес a

MOV CX, 10

;Вывод строки 'введите элемент'

M4:            MOV AH, 09h                       ;

LEA DX, s                             ;

INT 21h                               ;

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

MOV DX, 4

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

M5:            MOV AH, 1h                          ;

INT 21h                                   ;

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

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

CMP AL, 60h                                ;

JS M11                                          ;

SUB AL, 20h                                ;

M11:          SUB AL, 30h                                ;

CMP AL, 10h                                ;

JS M10                                          ;

SUB AL, 7h                                  ;

; Конец "Переводим введенный символ в 16ый код"

M10:          CMP DX, 4

JNE M6

; Если вводим первый символ, то заносим его в первую ячейку

ADD SI, 1                                                      ;

SAL AL, 4                                                      ;

MOV [SI], AL                                                ;

JMP M9                                                         ;

; Конец "Если вводим первый символ, то заносим его в первую ячейку"

M6:            CMP DX, 3

JNE M7

; Если вводим второй символ, то заносим его во вторую ячейку

ADD [SI], AL                                                 ;

JMP M9                                                          ;

; Конец "Если вводим второй символ, то заносим его во вторую ячейку"

M7:            CMP DX, 2

JNE M8

; Если вводим третий символ, то заносим его в третью ячейку

SUB SI, 1                                                       ;

SAL AL, 4                                                      ;

MOV [SI], AL                                                ;

JMP M9                                                         ;

; Конец "Если вводим третий символ, то заносим его в третью ячейку"

M8:            CMP DX, 1

JNE M9

; Если вводим четвертый символ, то заносим его в четвертую ячейку

ADD [SI], AL                                                      ;

ADD SI, 2                                                            ;

; Конец "Если вводим четвертый символ, то заносим его в четвертую ячейку"

M9:            DEC DX

JNZ M5

; Переход на другую строку

MOV AH, 02h                     ;

MOV DL, 68h                     ;

INT 21h                               ;

MOV DL, 0Dh                     ;

INT 21h                                ;

MOV DL, 0Ah                     ;

INT 21h                                ;

; Конец Перехода на другую строку

DEC CX

JNZ M4

; Переход на другую строку

MOV AH, 02h                     ;

MOV DL, 0Dh                     ;

INT 21h                               ;

INT 21h                                ;

MOV DL, 0Ah                     ;

INT 21h                                ;

; Конец Перехода на другую строку

; Вывод строки 'заданный массив'

MOV AH, 09h                         ;

LEA DX, w                              ;

INT 21h                                   ;

; Конец Вывода строки 'заданный массив'

; Переход на другую строку

MOV AH, 02h                   ;

MOV DL, 0Dh                   ;

INT 21h                       ;

MOV DL, 0Ah                   ;

INT 21h                       ;

; Конец Перехода на другую строку

LEA SI, a

MOV CX, 10

M17:          ADD SI, 1

; Вывод на экран первого символа

MOV BH, [SI]                       ;

SHR BH, 4                          ;

CMP BH, 0Ah                        ;

JS M18                             ;

ADD BH, 7h                         ;

M18:          ADD BH, 30h                        ;

MOV DL, BH                         ;

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
75 Kb
Скачали:
0