Деление чисел и их последующий вывод - Assembler
Формулировка задачи:
Задание такое: Вводиться число, если больше 0 то выполняем x2\ (c+d), меньше x(c+5), равно 0 то (2b-d)\2a. По алгоритму вроде правильно но беда при выводе, где в уравнении было деление.
И еще(другое задание), В числе Х найти вторую по величине цифру, если в числе могут быть одинаковые цифры. У меня беда с разделение числа по цифрам, div есть, но привычного mod нету, первую цифру вроде бы отделил,а с последующими косяк. Помогите советами) Спасибо!
Z1
Z2
include emu8086.inc ; multi-segment executable file template. data segment a db 5 b db -6 c db 2 d db 1 \ x dw ? pkey db "press any key...$" ends stack segment dw 128 dup(0) ends code segment start: ; set segment registers: mov ax, data mov ds, ax mov es, ax call SCAN_NUM mov x,cx xor ax,ax l1: cmp x,0 jnz m1 mov al,b add al,al sub al,d mov bl,a add bl,bl div bl jmp l M1: cmp x,0 jns M2 mov al,c add al,5 mul x jmp L m2: mov ax,x mul x mov bl,c add bl,d div bl L: CALL pthis DB 13, 10, 'Otvet: ', 0 CALL PRINT_NUM ; wait for any key.... mov ah, 1 int 21h mov ax, 4c00h ; exit to operating system. int 21h ends DEFINE_SCAN_NUM DEFINE_PRINT_STRING DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS ; DEFINE_PTHIS end start ; set entry point and stop the assembler.
; multi-segment executable file template. data segment x1 db ? x2 db ? x3 db ? x4 db ? pkey db "press any key...$" ends stack segment dw 128 dup(0) ends code segment start: ; set segment registers: mov ax, data mov ds, ax mov es, ax mov ax,0FCD7h mov di,ax mov bx,10 div bx mov x1,dl lea dx, pkey mov ah, 9 int 21h ; output string at ds:dx ; wait for any key.... mov ah, 1 int 21h mov ax, 4c00h ; exit to operating system. int 21h ends end start ; set entry point and stop the assembler.
Решение задачи: «Деление чисел и их последующий вывод»
textual
Листинг программы
mov ax,0FCD7h mov bx,10 lea di,x0 @@01: xor dx,dx div bx mov [di],dl inc di or ax,ax jnz @@01
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д