![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
dron4ik |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 318 Пол: Мужской Репутация: ![]() ![]() ![]() |
Привет. Программа вычисляет правильно,но не могу вывести на экран результат..помогите кто знает...пожалуйста
Число, находящееся в регистре AX, необходимо представить по основанию BX [2; 36] в виде остатков и вывести результат на экран в коде"36" с помощью int 21h $. MySegment Segment 'code'
assume CS:MySegment,SS:MySegment,DS:MySegment,ES:MySegment
org 100h
Main Proc
mov ax,word ptr Source
mov bx,word ptr Base
mov di,8
division:
xor dx,dx
div bx
dec di
mov str1[di],dl
cmp ax,0
jnz division
mov ax,4C00h
int 21h
Main EndP
Base DW 13
Source DW 256
str1 db 8 dup(0)
; результат после выполнения:ВОТ ЭТОТ РЕЗУЛЬТАТ НАДО ВЫВЕСТИ НА ЭКРАН
; 00 00 00 00 00 01 06 09
MySegment EndS
End Main
Та же проблема с выводом на экран результата.. Прога делает следующее:Программа решает задачу, обратную к той, что решалась в программе которая находится выше: дана строка остатков в DS:SI и основание BX [2; 36]. Получить число в AX и вывести результат на экран в коде"36" с помощью int 21h $. MySegment Segment 'code'
assume CS:MySegment,SS:MySegment,DS:MySegment,ES:MySegment
org 100h
Main Proc
mov bx,word ptr Base
xor ax,ax
xor cx,cx
lea si,str1
mov cl,len
work:
mul bl
add al,[si]
jnc normal
inc ah
normal:
inc si
loop work
; AX = 0100h
mov ax,4C00h
int 21h
Main EndP
Base DW 13
str1 db 1,6,9
len db $-str1
MySegment EndS
End Main
Сообщение отредактировано: dron4ik - 6.10.2009 17:27 |
![]() ![]() |
Client |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
mov dl,s ; тут то что надо вывести, правда с числами кажется не то выводит
int 21h
Вроде тоСообщение отредактировано: Client - 6.10.2009 18:06 |
dron4ik |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 318 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо!. А где это исправить?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
На кой тебе строка тут?
Main Proc
mov ax,256
mov bx,13
mov cx, 0
division:
xor dx,dx
div bx
push dx
inc cx
cmp ax, 0
jnz division
print_res:
pop ax
cmp ax, 10
jb digit
sub ax, 10
add ax, 'A'
digit:
add ax, '0'
int 29h
loop print_res
mov ax,4C00h
int 21h
Main EndP
|
dron4ik |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 318 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо.а как вывести резулт на экран?
Добавлено через 2 мин. что за 29-ое прерывание?мы такое еще не проходили.. |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Спасибо.а как вывести резулт на экран? Может, ты сначала запустишь программу, а потом вопросы задавать будешь?Добавлено через 43 сек. Цитата что за 29-ое прерывание?мы такое еще не проходили.. Пользуйся теми, которые проходили... Я не телепат, чтобы знать, кто что проходил, а кто - нет. |
dron4ik |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 318 Пол: Мужской Репутация: ![]() ![]() ![]() |
не работает((
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 3:28 |