Необходимо изменить .com-файл в .exe-файл - Assembler

Узнай цену своей работы

Формулировка задачи:

.model tiny
.code
;.386
org 100h
start:
    mov ah,10   
    lea dx,strBig
    int 21h
    mov ah,2    
    mov dl,10
    int 21h
    xor cx,cx   
    lea si,str  
m1:
    lodsb       
    cmp al,0Dh  
    jz short exit
    cmp al,' '  
    jz short m2
    xor ch,ch   
    jmp short m1    
m2:
    inc ch      
    cmp cl,ch   
    ja short m1 
    mov cl,ch   
    jmp short m1    
 
exit:
    xor ch,ch
 
;----------Вывод на экран---------
    mov ax,cx
    xor     cx, cx
    mov     bx, 10 
oi2:
    xor     dx,dx
    div     bx
    push    dx
    inc     cx
    test    ax, ax
    jnz     oi2
    mov     ah, 02h
oi3:
    pop     dx
    add     dl, '0'
    int     21h
    loop    oi3
;-----------------------------------------
    xor ax,ax  
    int 16h 
    ret     
;--------Строка-----------
strBig db 255
len db ?
str:
 
    end start

Решение задачи: «Необходимо изменить .com-файл в .exe-файл»

textual
Листинг программы
stac segment stack 'stack'
db 255 dup (?)
stac ends
 
data segment
strBig db 255
len db ?
str db 255 dup(0)
data ends
 
cd segment
assume cs: cd, ds: data, ss: stac
start:
    mov ah,10   ;ввод строки
    lea dx,strBig
    int 21h
 
    mov ah,2    
    mov dl,10
    int 21h
 
    xor cx,cx   
    lea si,str  
m1:
    lodsb       
    cmp al,0Dh  
    jz short exit
    cmp al,' '  
    jz short m2
    xor ch,ch   
    jmp short m1    
m2:
    inc ch      
    cmp cl,ch   
    ja short m1 
    mov cl,ch   
    jmp short m1    
 
exit:
    xor ch,ch
;----------Вывод на экран---------
    mov ax,cx
 
    xor     cx, cx
    mov     bx, 10 
oi2:
    xor     dx,dx
    div     bx
 
    push    dx
    inc     cx
 
    test    ax, ax
    jnz     oi2
 
    mov     ah, 02h
oi3:
    pop     dx
 
    add     dl, '0'
    int     21h
 
    loop    oi3
 
    xor ax,ax  
    int 16h
    ret     
 
cd ends
end start

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы