Я сделал так.
А нужно коротко, с помощью цикла
.modeltiny
.code
org100h
start:
mov y,12345
movdx,0
movax,y
movbx,10000
idivbx
addax,30h
movbx,0
movbuf [bx],al
movax,dx
movdx,0
movbx,1000
idivbx
addax,30h
movbx,1
movbuf [bx],al
movax,dx
movdx,0
movbx,100
idivbx
addax,30h
movbx,2
movbuf [bx],al
movax,dx
movdx,0
movbx,10
idivbx
addax,30h
movbx,3
movbuf [bx],al
movbx,4
movax,dx
addax,30h
movbuf [bx],al
movah,9
movdx,offset buf
int21h
ret
ydw(?)
bufdb'AAAAA' ,'$'
Другие языки программирования и технологии
Как на TASM Assembler вывести число 12345 с помощью цикла ?
.model tiny
.code
org 100h
start:
mov y,12345
;Способ 1. Используя вспомогательную переменную
mov ax,y
xor si,si
mov di,10000
mov bx,10
xor dx,dx
Way1:
div di
add al,30h
mov buf[si],al
mov ax,dx
xor dx,dx
xchg ax,di
div bx
xchg di,ax
inc si
or dx,dx
jz Way1
mov ah,9
mov dx,offset buf
int 21h
;Способ 2. Заполнение буфера с конца.
mov ax,y
mov si,offset buf+4
mov bx,10
Way2:
xor dx,dx
div bx
add dl,'0'
mov [si],dl
dec si
or ax,ax
jnz Way2
inc si
mov ah,9
mov dx,si
int 21h
;Способ 2а. То же самое, но с выводом незначащих нулей в старших разрядах
mov ax,y
mov si,4
mov cx,5
mov bx,10
Way2a:
xor dx,dx
div bx
add dl,30h
mov buf[si],dl
dec si
loop Way2a
mov ah,9
mov dx,offset buf
int 21h
;Способ 3. С использованием стека
mov ax,y
mov cx,5
mov bx,10
Way3:
xor dx,dx
div bx
or dl,'0'
push dx
loop Way3
mov cx,5
mov ah,2
Out3:
pop dx
int 21h
loop Out3
mov dx,offset buf+5
mov ah,9
int 21h
;Способ 3a. То же, но без вывода незначащих нулей
mov ax,y
xor cx,cx
mov bx,10
Way3a:
xor dx,dx
div bx
or dl,30h
push dx
inc cx
test ax,ax
jnz Way3a
mov ah,2
Out3a:
pop dx
int 21h
loop Out3a
ret
y dw (?)
buf db 'AAAAA',13,10,'$'
end start
.code
org 100h
start:
mov y,12345
;Способ 1. Используя вспомогательную переменную
mov ax,y
xor si,si
mov di,10000
mov bx,10
xor dx,dx
Way1:
div di
add al,30h
mov buf[si],al
mov ax,dx
xor dx,dx
xchg ax,di
div bx
xchg di,ax
inc si
or dx,dx
jz Way1
mov ah,9
mov dx,offset buf
int 21h
;Способ 2. Заполнение буфера с конца.
mov ax,y
mov si,offset buf+4
mov bx,10
Way2:
xor dx,dx
div bx
add dl,'0'
mov [si],dl
dec si
or ax,ax
jnz Way2
inc si
mov ah,9
mov dx,si
int 21h
;Способ 2а. То же самое, но с выводом незначащих нулей в старших разрядах
mov ax,y
mov si,4
mov cx,5
mov bx,10
Way2a:
xor dx,dx
div bx
add dl,30h
mov buf[si],dl
dec si
loop Way2a
mov ah,9
mov dx,offset buf
int 21h
;Способ 3. С использованием стека
mov ax,y
mov cx,5
mov bx,10
Way3:
xor dx,dx
div bx
or dl,'0'
push dx
loop Way3
mov cx,5
mov ah,2
Out3:
pop dx
int 21h
loop Out3
mov dx,offset buf+5
mov ah,9
int 21h
;Способ 3a. То же, но без вывода незначащих нулей
mov ax,y
xor cx,cx
mov bx,10
Way3a:
xor dx,dx
div bx
or dl,30h
push dx
inc cx
test ax,ax
jnz Way3a
mov ah,2
Out3a:
pop dx
int 21h
loop Out3a
ret
y dw (?)
buf db 'AAAAA',13,10,'$'
end start
Похожие вопросы
- как ввести и вывести числа? Язык Си
- С клавиатуры вводятся числа, пока не будет введен ноль, вывести числа в обратно порядке. С++ Голову сломал !!!
- Вывести название массива с помощью char, C++
- Вводится последовательность чисел, 0 – конец последовательности. Найти два наибольших числа (VB) прошу помощи
- Помогите!!! найти n! при n<=16 с помощью цикла
- решите, пожалуйста, задачу на языке с с помощью циклов (for, while, do...while)
- TASM. В какой части кода объявляются структуры в язяке ASSEMBLER?
- assembler tasm
- assembler tasm - в чем ошибка?
- assembler tasm - надо сосчитать сколько елементов было введено