Максимальное значение числа N, при котором N! не переполняет одно слово - Assembler
Формулировка задачи:
Написать программу на ассемблере IA-16, вычисляющую максимальное значение числа N, при котором N! не
переполняет одно слово
mov N, bx
mov dx, bx
add dl, 30h
mov ah, 2
int 21h
объясните пожалуйста эти строки, почему к dl прибавляют 30h(0).
mov ah, 2
int 21h
И какой регистр именно он будет выводить
.modelsmall .386 .stack 100h .data N DW 1 .code START: mov ax, @data mov ds, ax xor ax, ax mov ax, N mov bx, N xor dx, dx fact: cmp dx, 0 jne FINISH inc bx mul bx jmp fact FINISH:xor ax, ax dec bx mov N, bx mov dx, bx add dl, 30h mov ah, 2 int 21h MOV AX, 4C00h INT 21h END START
Решение задачи: «Максимальное значение числа N, при котором N! не переполняет одно слово»
textual
Листинг программы
C:\>DEBUG -A 0B25:0100 DW 1 0B25:0102 MOV AX,[100] 0B25:0105 MOV BX,[100] 0B25:0109 XOR DX,DX 0B25:010B CMP DX,0 0B25:010E JNE 115 0B25:0110 INC BX 0B25:0111 MUL BX 0B25:0113 JMP 10B 0B25:0115 XOR AX,AX 0B25:0117 DEC BX 0B25:0118 MOV [100],BX 0B25:011C MOV DX,BX 0B25:011E ADD DL,30 0B25:0121 RET 0B25:0122 -T AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B25 ES=0B25 SS=0B25 CS=0B25 IP=0102 NV UP EI PL NZ NA PO NC 0B25:0102 A10001 MOV AX,[0100] DS:0100=0001 -T ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д