Нарисуйте карту памяти для следующих сегментов Сегмента кода размером 5 слов
Скачать 126.79 Kb.
|
ЛР № 1Нарисуйте карту памяти для следующих сегментов: -Сегмента кода размером 5 слов; Одно слово 2-байта(2строчки) в сегменте 64 Кб, 5 слов – 10 яч. -Сегмента данных с тремя любыми константами в формате байта, и переменной с именем Т1, указывающим на пятую ячейку сегмента; -Сегмент дополнительных данных с одноразрядным, двухразрядным и трехразрядным десятичными числами в кодах ASCII. (Н-р: 12=> 31h21h; 123=>31h32h33h) ЛР № 2 - Логическое сложение двух однобайтных чисел MOV AL, 12h OR AL, 24h - Сложение двух однобайтных чисел MOV AL, 12h ADD AL, 24h - Умножение двух однобайтных чисел MOV AX, 02h MOV BX, 04h MUL BX - Деление двух однобайтных чисел MOV AX, 0Bh MOV BX, 08h DIV BX Описать компоненты программы. push ds ; поместить в стек номер адреса возврата sub ax,ax push ax ; в стек номер адреса возврата = 0 mov ax,dseg ; инициализация сегмента данных mov ds,ax mov al,07h ; задание значения константы в регистре al mov cx,5 ; счетчик элементов в массиве mov bx,offset source ; адрес 1-го элемента массива в регистре bx lea di, dest ; приемника-в di again: mov ah,[bx] ; перемещение элемента массива с адресом в регистре bx в регистр ah add ah,al ; прибавить к содержимому регистра ah содержимое регистра al mov [di],ah ; перемещение числа из регистра ah в массив-приемник по адресу из регистра di inc bx ; увеличение адреса текущего элемента в исходном массиве inc di ; увеличение адреса текущего элемента в массиве суммы loop again ; конец цикла ret ; возврат из процедуры ЛР № 3 4.1 Выведите содержимое регистра dl на экран, поместите в регистр dh число вводимое с клавиатуры. mov ah,02h ;выв.содерж.рег.dl на экран Mov ah, 01h ; вв.1-го числа с клав. 4.4 Напишите программу умножения трех чисел размером в 1 байт, без учета знака, с выводом результата на экран. Слагаемые вводит пользователь с клавиатуры. Movah, 01h ; вв.1-го числа с клав. Int 21h Sab al,30h ; вычит. (-30), т.к. ASCII. Mov bl,al ; пересылка из al в bl Mov ah, 01h Int 21h Sab al,30h Mul bl ;умнож.(по умолч. 1-й в al, а 2-й в какой указан.) сохр.в al Mov bl,al ; перемещ.из al в bl Mov ah, 01h Int 21h Sab al,30h Mul bl Mov dl, al ;перемещ.в рег.где происх.выв. Add dl, 30h; д/прав.выв. Mov ah, 02h Int 21h 4.5 Напишите комментарии к фрагменту программы приведенному ниже: mov dl,x1 ; пересылка 1-го(х1) в dl cmp dl,x2 ; сравн.числа в dl с х2 ja m1 ; если 1>2, переход на метку m1 mov dl,x2 ; иначе вып.mov (в dl запис. х2) m1: cmp dl,x3 ; сравн…. ja m2 ; если ..>.., переход на метку m2 mov dl,x3 ; иначе вып.mov ….. m2: mov ah,02h ;вывод max числа int 21h ПР № 3 Логические команды And операнд_1,операнд_2 — операция логического умножения (И - конъюнкция). and dx, x1; dx:=dx٧x1 Or операнд_1,операнд_2 — операция логического сложения (ИЛИ - дизъюнкцию) or al, x1; al:=al & x1 xor операнд_1,операнд_2 — операция логического исключающего сложения (исключающего ИЛИ ИЛИ-НЕ). xor ax, dx ;если содержимое совпадает то в регистре ах мы получим нулевой результат, иначе не нулевой результат. xor bh,10b ; инвертировали 1й бит в регистре bh test операнд_1,операнд_2 — операция “проверить” (способом логического умножения). Not операнд — операция логического отрицания. not ax ;ax:= Арифметические операции Сложение двоичных чисел: add оп1,оп2 – оп1 = оп1 + оп2 (addition)add al, bl Вычитание двоичных чисел:dec операнд — операция декремента, то есть уменьшения значения операнда на 1;dec cx ;cx:=cx-1 sub операнд_1,операнд_2 — команда вычитания; ее принцип действия: операнд_1 = операнд_1 – операнд_2 sub al, bl; al:=al-bl Умножение двоичных чисел mul множитель_1 - операция умножения двух целых чисел без учета знака mul dl; ax:=al*dl, dl- множитель_1 , al- множитель_2 Деление двоичных чисел div делитель - выполнение операции деления двух двоичных беззнаковых значений div dl ;ah:al=ax/dl, ax –делимое, dl- делитель , ah-частное, al -остаток |