Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите!) Работа с буфером, Использование значений в буфере  
:(
    Опции темы
XoMYAK
Дата 19.12.2013, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.12.2013

Репутация: нет
Всего: нет



Всем привет! Я в программировании и, в частности, в программировании на языке Ассемблер новичок. Буквально пару недель! ребята, мне очень сложно в короткие сроки ухватывать суть. Так что прошу вашей помощи.
Задача следующая: Скласти і реалізувати програму введення та виведення цілого числа зі знаком та виведення рядка символів.
Поскольку предыдущее задание было написать процедуру ввода и преобразования целого числа (из ASCII в понятные символы путем прибавления 48(39h)) то и эту пробовал реализовать подобным путем.
Вот код:
Код

sseg segment para stack "stack"
db 255 dup ("stack")
sseg ends

dseg segment para public "data"
;buf db 255 
buf dw 100 dup ('$')
ten dw 10
dseg ends

cseg segment para public "code"
assume ss:sseg, ds:dseg, cs:cseg
main proc far

mov ax, dseg
mov ds, ax

mov ah, 0ah
lea dx, buf
int 21h

xor ax, ax

mov ax, buf+1 ; если вместо buf+1 поставить число до 32759 - то все работает

;если следующие 3 строки закомментировать можно поместить число до 65535 
; (ну, и 0ah 21 прерывания тоже надо закомментировать)
sign:
neg ax 
js sign

mov cx, 1

convert:
cmp ax, 10
jb next

xor dx, dx
inc cx
div ten

mov bx, dx
add bx, 30h
push bx
;xor ah, ah
jmp convert

next:
mov bx, ax
add bx, 30h
push bx


mov dx, 0ah
mov ah, 02h
int 21h

monitor:
pop bx
mov dx, bx
mov ah, 02h
int 21h
loop monitor

mov ah, 04ch
int 21h

main endp
cseg ends
end main

беда в том) что я не понимаю, как работать с буфером! + я знаю, что ввод числа можно и по другому реализовать( как в учебниках написано), но что то я не могу толком их примеры разобрать. А объяснить не кому(
+ я написал (подглядел) такую вот процедуру:
Код



data segment
     string db 100 dup ('$')
data ends
 
code segment
assume cs:code,ds:data
start:
    mov ax, data
    mov ds, ax
    
    mov ah,0ah
    lea dx,string
    int 21h 
    
    mov string+1,0ah
    
    mov ah,9
    lea dx,string+1
    int 21h
    
    mov ah, 10h
    int 16h
 
    mov ax, 4c00h
    int 21h
code ends
end start

но опять таки, не знаю как тут реализовать проверку знака. в общем я запутался(
Выручайте.

Это сообщение отредактировал(а) XoMYAK - 20.12.2013, 11:24
PM MAIL   Вверх
XoMYAK
Дата 20.12.2013, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.12.2013

Репутация: нет
Всего: нет



Да, надо сделать уточнения:
1.Работаю в ТАSМ.
2.Система исчислеия- десятичная.
3.Я могу задавать вопросы, которые вам могут показаться глупыми smile 
4.Возможно вам придеться мне что то объяснять "как для дебила  smile " smile 
PM MAIL   Вверх
ФедосеевПавел
Дата 20.12.2013, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 4
Всего: 10



Глянь тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.