Определить содержимое регистра AX - Assembler
Формулировка задачи:
надо найти что выйдет в АХ? люди добрые помогите,,, дано:
.data vekt dw 12, -13, 25, 2, -11, 4, 7 .code ............ lea bx, vekt+4 mov di,2 mov ax,vekt[di+2] inc word ptr[bx][di] add ax,[bx][di]
Решение задачи: «Определить содержимое регистра AX»
textual
Листинг программы
lea bx,vekt+4 ;bx указывает на два элемента дальше начала вектора, т.е. на 25 mov di,2 ;di = 2 - длина одного элемента mov ax,vekt[di+2] ;ax = от начала вектора+1 элемент (di)+еще один элемент (+2). Итого, ax=25 inc word ptr[bx][di]; инкремент слова следующего (di) за 25 (bx), т.е. было 2, стало 3 add ax,[bx][di] ;ax = старое значение (25) + слово за 25 (т.е. 3) = 28
Объяснение кода листинга программы
lea bx,vekt+4
— Переменнаяbx
указывает на байт, следующий за последним элементом вектораvekt
. Здесь векторуvekt
добавляется 4 к его адресу, чтобы получить байт, следующий за последним элементом вектора.mov di,2
— Переменнаяdi
получает значение 2. Здесьdi
используется как смещение от начала вектораvekt
.mov ax,vekt[di+2]
— Переменнаяax
получает значение элемента вектораvekt
, который находится по смещениюdi+2
от начала вектора. Посколькуdi
равно 2,di+2
будет равно 4, иax
получит значение 4-го элемента вектораvekt
.inc word ptr[bx][di]
— Происходит инкремент слова, следующего за последним элементом вектораvekt
, на который указываетbx
, на смещениеdi
. Посколькуdi
равно 2, иbx
указывает на байт, следующий за последним элементом вектораvekt
, это будет означать, что инкрементируется слово, следующее за 4-м элементом вектораvekt
.add ax,[bx][di]
— Переменнаяax
получает сумму своего текущего значения и значения слова, следующего за последним элементом вектораvekt
, на которое указываетbx
, на смещениеdi
. Посколькуdi
равно 2, иbx
указывает на байт, следующий за последним элементом вектораvekt
, это будет означать, что кax
добавляется значение слова, следующего за 4-м элементом вектораvekt
. Итак, в результате выполнения этого кода переменнаяax
будет содержать значение 28.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д