Необходимо изменить .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