Как сохранить число dw в переменной типа dd? - Assembler
Формулировка задачи:
есть процедура ввода числа
само число записывается в bx, bx 16 разрядов,проблема в том чтобы как записать это число в переменную формата dd?
input PROC nextnum: mov ah,01h ;enter new symb int 21h cmp al,2fh jl ofe cmp al,30h ; if new symb <0 jl ofe cmp al,39h ; if new symb >9 ja ofe sub al,30h ; symb to number xor ah,ah xchg ax,bx mov dx,0Ah mul dx ; mul*10 add bx,ax ;+new=sum mov cx,ax jmp nextnum ofe: mov ah,02h mov dl,0Ah int 21h ret input endp
Решение задачи: «Как сохранить число dw в переменной типа dd?»
textual
Листинг программы
;Пусть тут в al цифра 0..9 mov ah, 0 push ax mov ax, word ptr chislo+2 ;ст.слово chislo mov bx, 10 mul bx mov cx, ax mov ax, word ptr chislo ;мл.слово chislo mul bx pop bx add ax, bx adc dx, cx mov word ptr chislo, ax mov word ptr chislo+2, dx
Объяснение кода листинга программы
- Пусть тут в al цифра 0..9 — это инструкция, которая устанавливает значение регистра al в одну из цифр от 0 до 9.
- mov ah, 0 — это инструкция, которая сохраняет значение регистра al в регистре ah.
- push ax — это инструкция, которая помещает значение регистра ax в стек.
- mov ax, word ptr chislo+2 — это инструкция, которая загружает в регистр ax значение по адресу chislo+2.
- mov bx, 10 — это инструкция, которая сохраняет значение 10 в регистре bx.
- mul bx — это инструкция, которая выполняет умножение значения регистра ax на значение регистра bx и сохраняет результат в регистре ax.
- mov cx, ax — это инструкция, которая сохраняет значение регистра ax в регистре cx.
- mov ax, word ptr chislo — это инструкция, которая загружает в регистр ax значение по адресу chislo.
- mul bx — это инструкция, которая выполняет умножение значения регистра ax на значение регистра bx и сохраняет результат в регистре ax.
- pop bx — это инструкция, которая извлекает значение из стека и сохраняет его в регистре bx.
- add ax, bx — это инструкция, которая выполняет сложение значения регистра ax и значения регистра bx и сохраняет результат в регистре ax.
- adc dx, cx — это инструкция, которая выполняет сложение значения регистра dx и значения регистра cx и сохраняет результат в регистре dx.
- mov word ptr chislo, ax — это инструкция, которая сохраняет значение регистра ax по адресу chislo.
- mov word ptr chislo+2, dx — это инструкция, которая сохраняет значение регистра dx по адресу chislo+2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д