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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 11:50   #1
Stiva
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 2
По умолчанию Вывести первые 20 байт PSP com-файла

Задание: Вывести первые 20 байт PSP com-файла. Программа должна работать в определенную дату.

Программа такая

Цитата:
.model tiny
.data
filename db 'C:\asm\Lb2.txt',0,0,0 ;имя любого существующего файла в каталоге asm
m_t_e db 'Sorry, you can not run this programm$'
message3 db 'Works$' ;вывод сообщения о работе программы
mess3len=$-message3

Day = 20
Month = 12
Year = 2011

.code
org 100h

begin:
mov ah, 2ah
int 21h

mov al, Day
cmp dl, al
jnb Error_day

mov ah, Month
cmp dh, ah
jne Error_day

mov ax, Year
cmp cx, ax
jne Error_day

xor ax, ax
xor cx, cx
xor dx, dx

start1:
xor bx, bx
mov byte ptr [bx+15h],'$'
mov cx, 14h
mov si, bx
NextByte:
mov al, [si]
inc si
;converting number to hex
xor dx, dx
mov ah, 0eH
;разделяем число
mov dl, al
ror dx, 4
shr dh, 4

cmp dl, 0Ah
jae hex1
or dl, 30h

jmp nextB
hex1:
add dl, 37h

nextB:
cmp dh, 0Ah
jae hex2
or dh, 30h

jmp prnt
hex2:
add dh, 37h

prnt:
mov al, dl
int 10h
mov al, dh
int 10h
mov al, ''
int 10h

loop NextByte
ret

Error_day:
xor ax, ax
mov ah, 9
mov dx, offset m_t_e
int 21h
mov ah, 10h
int 16h
int 21h

end begin
com-файл создается, но программа выводит:

Sorry, you can not run this programm

а должна выводить:

CD 20 и т.д.

Помогите пожалуйста!
Stiva вне форума Ответить с цитированием
Старый 20.12.2011, 16:46   #2
zhan313
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 44
По умолчанию

Код:
mov al, Day
cmp dl, al
jnb Error_day
почему не jne ?
zhan313 вне форума Ответить с цитированием
Старый 20.12.2011, 17:53   #3
Stiva
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от zhan313 Посмотреть сообщение
почему не jne ?
опечатка, исправила, работает))))
Stiva вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смещение по psp CodeNOT Общие вопросы C/C++ 2 09.03.2011 23:04
Найти байт максимальным количестов единиц и байт с максмальным количеством нулей и разность (ассемблер) Beren42 Помощь студентам 0 15.12.2010 20:32
вывести первые n слов на экран kaffein Помощь студентам 4 22.11.2010 18:55
вывести первые три записи Cannibal SQL, базы данных 2 25.01.2010 17:11