Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2012, 23:24   #11
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
Сообщение от Adis Посмотреть сообщение
тут процедура bcd_asc насколько понял переводит из двоичной в 10 неправильно
Может стоило проверить, перед тем, как такие выводы делать в теме которой три года ?
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 03.10.2012, 08:44   #12
Adis
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

Код:
.286
.model small
.stack 100h
.data
    clock db 'TekyLLLee Bpemy '
    time db 0,0,':',0,0,':',0,0,'$'
.code
  bcd_asc proc

      mov ah, al
      and ah, 0fh
      add ah,'0'
      and al, 0f0h
      shr al, 4
      add al,'0'
      ret
  bcd_asc endp

  startupcode
  mov ah, 02ch
  int 21h
  mov al, ch
  call bcd_asc
  mov word ptr time, ax
  mov al, cl
  call bcd_asc
  mov word ptr time + 3, ax
  mov al, dh
  call bcd_asc
  mov word ptr time + 6, ax

  mov ah, 09h
  mov dx, offset clock
  int 21h
  mov ah,4ch
  int   21h    

END
переделал вот в exe. с 1ah прерыванием вообще не работает: показывает
TekyLLLee Bpemy 00:??:0>

а с 21h прерыванием показывается так:
0::28:09
иногда так: 0::2::0;
в чем может быть проблема?
делаю все это на тасме.
Adis вне форума Ответить с цитированием
Старый 03.10.2012, 09:18   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

скомпилировал пример в COM
вроде бы всё работает нормально.

проверяйте:
GETIME.rar
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2012, 10:40   #14
Adis
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

нашел ошибку -
Код:
mov ah,02ch
int 1ah
заменил на
Код:
mov ah,02h
и все заработало. спасибо.
Adis вне форума Ответить с цитированием
Старый 03.10.2012, 10:49   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от MalCer
Код:
Вот так еще можно

Код:

.386
CSEG segment use16
assume cs:CSEG, ds:CSEG, ss:CSEG, es:CSEG
org 100h

Begin:

     mov ah,02ch
     int 1ah
ага. Вы абсолютно правы. там опечатка!

Странно, что я исправил ошибку в данном коде (судя по дате файла ещё 21.06.2011) и не выложил исправленный исходник. Думаю, что выложил, но в какой-то другой аналогичной теме..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.10.2012, 18:00   #16
Adis
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

нужно вывести месяц словом.

числом я вывожу через функцию 04h прерывания 1ah.
в dh - в bsd формате месяц.

я думал сделать так:
Код:
...
Month db 'January$  ', 'February$  ', 'March$    ' ...
...
mov    dx, offset Message + 10*(ratio-1)
...
где ratio сод-т значание от 1 - 12

но оказ-ся такое не прокатит. тогда как быть?


добавлено позже:

оказ-ся, такой вариант прокатывает:

Код:
mov si, 5
mov ah, Message[si]
mov string, ah
mov    ah, 9     
mov    dx, offset string

Последний раз редактировалось Adis; 04.10.2012 в 18:35. Причина: нашел ответ
Adis вне форума Ответить с цитированием
Старый 04.10.2012, 19:23   #17
Adis
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию

Код:
.MODEL SMALL
.STACK 100h
.DATA
    Message  DB 'September$', 'October$', 'November$'
    string db ?
.CODE
    mov ax, @Data
    mov ds, ax    
    mov si, 10
    mov ah, Message[si]
    mov string, ah
    mov    ah, 9     
    mov    dx, offset string
    int    21h
    mov    ah, 4ch
    int    21h
END
выводит только один символ. как мне вывести из Message только October?
и вообщем, что делает вот это: mov ah, Message[si] ?
Adis вне форума Ответить с цитированием
Старый 04.10.2012, 19:43   #18
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Может стоит вычислить отдельно и по частям ?
Код:
mov    dx, offset Message + 10*(ratio-1)
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 04.10.2012, 21:17   #19
Adis
 
Регистрация: 23.11.2009
Сообщений: 9
По умолчанию гавнокод

Код:
.MODEL SMALL
.STACK 100h
.DATA
    Month db 'January$  '
             db 'February$ '
             db 'March$    '
             db 'April$    '
             db 'May$      '
             db 'June$     '
             db 'July$     '
             db 'August$   '
             db 'September$'
             db 'October$  '
             db 'November$ '
             db 'December$ '    
.CODE
    mov ax, @Data    
    mov ds, ax
    ;mov ah, 04h         ;получение даты
    ;int 1ah 
    ;после этого в dh - месяц в bcd формате

    ;мне как то нужно dh в hex или двоичный вид перевести
    

    mov bl, 3 ; номер месяца [от 1 - 12]
    mov ax, 10
    mul bx    
    mov cx, ax
    sub cx, 10
    mov ah, 9
    mov dx, offset Month
  myloop:    
    inc dx
    loop myloop
    int 21h
    mov    ah, 4ch
    int    21h
END
Вообщем, выводит месяц словом. Единственная проблема dh - в BCD формате. Нужно в hex или binary перевести. Помогите плиз. Хотя бы алгоритм бы мне..

Последний раз редактировалось Adis; 04.10.2012 в 21:23. Причина: привел код в порядок
Adis вне форума Ответить с цитированием
Старый 04.10.2012, 21:27   #20
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Так в этой теме же все есть, в предыдущих постах
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текущее время (системное время ) Sirk0 Общие вопросы Delphi 27 07.03.2015 17:52
Текущее время Aндрей Помощь студентам 1 08.05.2009 14:01
Как сделать так, чтобы в TLabel отображались текущее системное время? Bill Gates Общие вопросы Delphi 3 03.01.2008 01:12
Текущее время Greyglass Microsoft Office Excel 4 22.11.2007 13:25