SDATA SEGMENT WORD PUBLIC 'DATA'
A DB -5 ;- это два коэффициента
B DB 17
ARRAY_X DB -1,22,-34,12,-51, 68 ; - массив чисел X
ARRAY_Y DW 6 DUP(0) ; - массив чисел Y
SDATA ENDS
SSTACK SEGMENT PARA STACK 'STACK'
DW 64 DUP (?)
STACK_POINT LABEL WORD
SSTACK ENDS
SCODE SEGMENT WORD PUBLIC 'CODE'
ASSUME CS:SCODE,DS:SDATA,SS:SSTACK
START: MOV AX,SDATA ; Запись сегментного адреса
MOV DS,AX ; Данных в регистр DS
MOV AX,SSTACK ; Определение сегмента стека
MOV SS,AX ; и указателя стека
MOV SP,OFFSET STACK_POINT
; Инициализация исходных данных
MOV SI,0 ; SI содержит индекс массива X
MOV DI,0 ; DI содержит индекс массива Y
MOV CX,6 ; СX:= число элементов массива X
M1:MOV AL, A ; AL:= коэффициент A
CBW ; Расширение байта до слова
MOV BX, AX ; Сохранение коэффициента в BX
MOV AL, ARRAY_X[SI-1] ; Занесение очередного элемента массива X в аккумулятор
IMUL BL ; AX:=A*X[I]
push AX ; Помещение АХ в стек
MOV AL, B ; AL:= коэффициент B
CBW ; Расширение байта до слова
MOV BX, AX ; Сохранение коэффициента в BX
MOV AL, ARRAY_X[SI] ; Занесение очередного элемента массива X в аккумулятор
IMUL BL ; AX:=B*X[I]
POP BX ; Извлечение A*X[I] из стека
ADD AX,BX ; Y[I]=:A*X[I]+B*X[I]
MOV ARRAY_Y[DI], AX ; запись в массив Y
INC DI ; увеличение DI на 1
INC DI ; увеличение DI на 1
INC SI ; увеличение SI на 1
LOOP M1 ; переход на метку M1
MOV AX,4C00H ; выход из программы
INT 21H ; выполняется функция DOS, номер
SCODE ENDS ; конец кодового сегмента программы
END START ; конец программы
class TV{
constructor() {
this._power = false;
this._channel = 1;
}
power() {
if (this._power){
this._power = false;
console.log('TV is off');
} else {
this._power = true;
console.log(`TV is on.The channel is #${this._channel}`);
}
}
selectChannel(number) {
if (!this._power || number < 1 || number > 99 || isNaN(number) || number % parseInt(number) > 0) {
return false
} else {
this._channel = number;
console.log(`Switch to channel #${this._channel}`);
}
}
}
const tv = new TV();
/*
tv.power();
tv.selectChannel(3);
*/
Вот у меня есть число 120, в двоичном оно будет 01111000.
Дальше по четной маске: 01010000, по нечетной: 00101000. Пробовал 4 способами сдвигать влево и вправо, но не получил необходимое число.
...
Необходимо получить после замены битов местами: 11100100