Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

cain52
Статус: 3-й класс
Рейтинг: 3
∙ повысить рейтинг »
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0
∙ повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 0
∙ повысить рейтинг »

∙ Assembler

Номер выпуска:1759
Дата выхода:18.04.2020, 11:45
Администратор рассылки:Лысков Игорь Витальевич (Мастер-Эксперт)
Подписчиков / экспертов:84 / 24
Вопросов / ответов:1 / 1

Консультация # 198229: Здравствуйте! У меня возникла проблема, которую я не могу решить, извилин не хватает, к сожалению((( Предомной стоит задача написать простейшею форму регистрации: программа должна спросить имя, пол, возрасти записать полученные результаты в файл на языке assembler emu8086. Тект моей программы:
Ко
...

Консультация # 198229:

Здравствуйте! У меня возникла проблема, которую я не могу решить, извилин не хватает, к сожалению((( Предомной стоит задача написать простейшею форму регистрации:
программа должна спросить имя, пол, возрасти записать полученные
результаты в файл на языке assembler emu8086. Тект моей программы:

Код (Assembler) :: выделить код
#make_COM#
org 100h
;??????????? ? ????? ??????
mov ah, 09h
lea dx, Name
int 21h
;???? ??????
mov ah, 0Ah
lea dx, Buff
int 21h
mov ah, 09h
lea dx, Gender
int 21h
;???? ??????
mov ah, 0Ah
lea dx, Buff2
int 21h
mov ah, 09h
lea dx, Age
int 21h
;???? ??????
mov ah, 0Ah
lea dx, Buff3
int 21h
;???????? ?????
mov ah, 3Ch ;??????? ????
mov cx, 0 ;???????
lea dx, FileName ;???
int 21h
jnc @@FileCreateOk
mov ah, 09h
lea dx, errFileOpenWr
int 21h
jmp @@Exit
@@FileCreateOk:
mov [hFile], ax
;?????? ? ????
mov ah, 40h
mov bx, hFile
mov cl, Buff+1
; mov ch, 0
lea dx, Buff+2
mov cl, Buff2+1
; mov ch, 0
mov cl, Buff2+2
mov cl, Buff3+1
mov ch, 0
lea dx, Buff3+2
int 21h
jnc @@FileWriteOk
mov ah, 09h
lea dx, [errFileWrite]
int 21h
jmp @@FileClose
@@FileWriteOk:

@@FileClose:
mov ah, 3Eh
mov bx, [hFile]
int 21h
jnc @@FileCloseOk
mov ah, 09h
lea dx, [errFileClose]
int 21h
jmp @@Exit
@@FileCloseOk:

@@Exit:
;???????? ??????? ????? ???????
mov ah, 09h
lea dx, [msgPressAnyKey]
int 21h
mov ah, 0
int 16h
;?????????? ?????????
; int 20h
ret
;-------------------------------------------------------
errFileOpenRd db 0Dh, 0Ah, 'File open (for read) error', '$'
errFileOpenWr db 0Dh, 0Ah, 'File open (for write) error', '$'
errFileRead db 0Dh, 0Ah, 'File read error', '$'
errFileWrite db 0Dh, 0Ah, 'File write error', '$'
errFileClose db 0Dh, 0Ah, 'File close error', '$'
CrLf db 0Dh, 0Ah, '$'
Name db 0Dh, 0Ah,'Enter your name:', 0Dh, 0Ah, '$'
Gender db 0Dh, 0Ah,'Enter your gender (w/m):', 0Dh, 0Ah, '$'
Age db 0Dh, 0Ah,'Enter your age:', 0Dh, 0Ah, '$'
msgPressAnyKey db 0Dh, 0Ah, 'Press any key to exit...', '$'

FileName db 'data.txt', 0

hFile dw ?

BufSize equ 80
BufSize2 equ 2
Buff db BufSize, ?, (BufSize+1) dup(?)
Buff2 db BufSize2, ?, (BufSize2+1) dup(?)
Buff3 db BufSize, ?, (BufSize+1) dup(?)

После ее работы файл остаётся пустым и ничего в него не записывается. Можете, пожалуйста, мне помочь исправить ошибки в моей программе?

Дата отправки: 13.04.2020, 11:29
Вопрос задал: Be|_Ena (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Старший модератор):

Здравствуйте, Be|_Ena!

Смотрите код:

Код (Assembler) :: выделить код
.model   tiny
code 
org     100h
;  
begin:  mov     ah,09h
        lea     dx,dbName 
        int     21h
        mov     ah,0Ah
        lea     dx,Buff 
        int     21h
;  
        mov     ah,09h
        lea     dx,Gender 
        int     21h
        mov     ah,0Ah
        lea     dx,Buff2 
        int     21h
;  
        mov     ah, 09h
        lea     dx,Age 
        int     21h
        mov     ah,0Ah
        lea     dx,Buff3 
        int     21h
;  
        mov     ah,3Ch
        mov     cx,0 
        lea     dx,FileName 
        int 21h
        jnc     @@FileCreateOk 
        mov     ah,09h
        lea     dx,errFileOpenWr
        int     21h
        jmp     @@Exit 
@@FileCreateOk:
        mov     [hFile],ax 
        mov     ah,40h
        xor   cx,cx 
        mov     bx,[hFile] 
        mov     cl,[Buff+1] 
        lea     dx,Buff+2 
        int     21h
        jc     @@Err
        mov     ah,40h
        xor   cx,cx 
        mov     bx,[hFile] 
        mov     cl,[Buff2+1] 
        lea     dx,Buff2+2 
        int     21h
        jc     @@Err  
        mov     ah,40h
        xor   cx,cx 
        mov     bx,[hFile] 
        mov     cl,[Buff3+1] 
        lea     dx,Buff3+2 
        int     21h
        jnc     @@FileWriteOk  
@@Err:  mov     ah,09h
        lea     dx,errFileWrite
        int     21h
        jmp     @@FileClose 
@@FileWriteOk:
@@FileClose:
        mov   ah,3Eh
        mov     bx,[hFile] 
        int     21h
        jnc     @@FileCloseOk 
        mov     ah,09h
        lea     dx,errFileClose
        int     21h
        jmp     @@Exit 
@@FileCloseOk:
 
@@Exit:
        mov     ah,09h
        lea     dx,msgPressAnyKey
        int     21h
        mov     ah,0 
        int     16h
        ret 
;-------------------------------------------------------  
errFileOpenRd   db      0Dh,0Ah,'File open (for read) error', '$' 
errFileOpenWr   db      0Dh,0Ah,'File open (for write) error', '$' 
errFileRead     db      0Dh,0Ah,'File read error', '$' 
errFileWrite    db      0Dh,0Ah,'File write error', '$' 
errFileClose    db      0Dh,0Ah,'File close error', '$' 
CrLf            db      0Dh,0Ah,'$' 
dbName          db      0Dh,0Ah,'Enter your name:$' 
Gender          db      0Dh,0Ah,'Enter your gender(w/m):$' 
Age             db      0Dh,0Ah,'Enter your age:$' 
msgPressAnyKey  db      0Dh,0Ah, 'Press any key to exit...', '$' 
FileName        db      'data.txt', 0 
 
hFile           dw      ?
 
BufSize         equ     80 
BufSize2        equ     2 
Buff            db      BufSize, ?,(BufSize+1) dup(?) 
Buff2           db      BufSize2,?,(BufSize2+1)dup(?) 
Buff3           db      BufSize, ?,(BufSize+1) dup(?) 
end begin

Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 14.04.2020, 11:36
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное