Ввод символов с клавиатуры - Assembler
Формулировка задачи:
Добрый день,
Помогите пожалуйсто реализовать ввод елементов массива с клавиатуры
Заранее спасибо
Вот код програмы:
org 100h jmp start array db '2 61 25 34 45 11 15 1','$' len = ($ - array)-1 ; fName db 'data.txt',0 ; имя файла start: ; mov ah,9 ; покажем массив на экране mov dx,array ; int 21h ; mov ah,3Ch ; создать файл! mov dx,fName ; mov cx,20h ; int 21h ; xchg ax,bx ; mov ah,40h ; запись в файл! mov cx,len ; mov dx,array ; int 21h ; mov ah,3Eh ; закрыть файл! int 21h ; ;---------------------------------------------------------------------— mov cx,len ; сортировка массива —-----------------// dec cx ; mov si,array ; mov di,si ; sort: push cx di si ; xor bx,bx ; флаг перестановок fuck: lodsw ; cmp ah,al ; jae @@1 ; inc bx ; xchg ah,al ; @@1: stosw ; dec si ; dec di ; loop fuck ; pop si di cx ; or bx,bx ; перестановки были? jnz sort ; ;---------------------------------------------------------------------— mov al,10 ; выводим отсортированный массив на экран int 29h ; mov ah,9 ; mov dx,array ; int 21h ; exit: xor ax,ax ; int 16h ; int 20h ;
Решение задачи: «Ввод символов с клавиатуры»
textual
Листинг программы
model tiny .code szArray equ 25 org 100h start: lea si,dwArray mov di,10 mov cx,szArray @@01: call InpNum mov [si],bx add si,2 loop @@01 ret dwArray dw szArray dup(?) dbInp db 10,13,'Enter A[' dwNum dw '00' db ']:=$' InpNum: mov ax,dwNum and ax,0F0Fh xchg ah,al aad 16 inc ax aam 16 xchg ah,al or ax,'00' cmp ah,'9' jbe @@0 inc al mov ah,'0' @@0: mov dwNum,ax mov ah,9 lea dx,dbInp int 21h xor bx,bx @@1: xor ax,ax int 16h cmp al,13 jz @@2 cmp al,'0' jb @@1 cmp al,'9' ja @@1 int 29h and ax,0fh xchg ax,bx xor dx,dx mul di add bx,ax jmp @@1 @@2: ret end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д