Пояснение строчек кода - Assembler
Формулировка задачи:
Нам дали код и сказали , чтоб мы в нем сами разобрались, код вычисляет факториал 1000!, поясните каждую строчку , пожалуйста
.486p .model tiny segment byte public 'CODE' use16 assume cs:seg000 org 100h assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing seg000:0100 public start proc near std mov word_10D7F, 0BB8h sub word_10D7F, 2 lea di, byte_101C7 add di, word_10D7F mov si, di mov word ptr [di], 1 lodsw loc_1011B: mul word_10D81 stosw loc_10120: mov cx, dx mov ax, [si] cmp ax, 0 jnz short loc_1014C cmp word ptr [si-2], 0 jnz short loc_1014C add [si], cx dec word_10D81 jz short loc_1015B lea si, byte_101C7 add si, word_10D7F loc_1013F: lodsw cmp ax, 0 jz short loc_1013F mov di, si add di, 2 jmp short loc_1011B loc_1014C: mul word_10D81 stosw add [si], cx adc dx, 0 sub si, 2 jmp short loc_10120 loc_1015B: mov bp, di sub bp, 2 lea di, byte_101C7 add di, word_10D7F mov si, di xor bx, bx xor cx, cx loc_1016E: cmp di, bp jz short loc_1017C lodsw rol ax, 8 stosw add cx, 2 jmp short loc_1016E loc_1017C: mov bp, cx cld add di, 2 mov bx, di lea si, byte_11D22 cmp byte ptr [di], 0 jnz short loc_1018F inc bx dec bp loc_1018F: mov cx, bp xor ax, ax mov di, bx loc_10195: mov al, [di] div byte_11D24 stosb loop loc_10195 or ah, 30h cmp ah, 39h jbe short loc_101A9 add ah, 7 loc_101A9: mov [si], ah dec si loc_101AC: cmp word ptr [di-2], 0 jnz short loc_1018F sub di, 2 cmp di, 1C7h ja short loc_101AC inc si mov dx, si mov ah, 9 int 21h xor ax, ax int 16h retn start endp byte_101C7 db 0BB8h dup(0) word_10D7F dw 0 word_10D81 dw 3E8h db 0F9Fh dup(0) byte_11D22 db 0, 24h byte_11D24 db 0Ah seg000 ends seg000:1D24 end start
Решение задачи: «Пояснение строчек кода»
textual
Листинг программы
mov cx, dx ;поместить в регистр cx значение из регистра dx
Объяснение кода листинга программы
Список действий в коде:
- mov cx, dx; поместить в регистр cx значение из регистра dx
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д