Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Lina
0 / 0 / 0
Регистрация: 09.06.2012
Сообщений: 20
1

Двоичное представление констант с фиксированной точкой

03.06.2009, 22:14. Просмотров 1571. Ответов 2
Метки нет (Все метки)

Добрый вечер! Заранее прошу извинить за некорректное изложение вопроса.Задача следующая: Имеются 3 константы с фиксированной точкой в формате слова.Нужно написать на Ассемблере программу печати двоичного представления этих констант и записать результат в файл. Не понимаю вот следующего: в пунктах 4,5,6 даны соответствующие константы,А в 9,10,11-их пояснения(для чего эти пояснения??) и почему они в одном случае отличаются,в другом нет... или можно взять любое число и дать "любое пояснение". для чего например предназначен пункт 12? что подразумевается в пункте 32? и зачем в этой программе мы используем сложение adc .. иначе не ясен весь алгоритм(смысл).. ВСЕМ ТЕМ КТО ОТКЛИКНЕТСЯ ЗАРАНЕЕ БОЛЬШОЕ-БОЛЬШОЕ СПАСИБО!! П.С не ругайте сильно,я-новичок(чайничек))
Вот соответствующий код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 .model SMALL
 .STACK 100h
 .DATA
 const1 dw 15 ;pervaya konstanta
 const2 dw -256 ;vtoraya
const3 dw 65280 ;tretya
 prigl db 'Constants in computer memory:','$' 
 ctrl db 0Dh,0Ah,'$' ;Enter, toyest perexod na nachalo tekushey stroki i perexod kursora na odnu poziciyu vniz
 con1 db ' 6375 - ','$' ;Poyasneniye k pervoy konstante
 con2 db ' 256 - ','$' ;... ko vtoroy
 con3 db '65280 - ','$' ;... k tretyey
 handle dw ?
 bufer db 32h dup(?)
 file DB '1.txt',0
 mes DB 'Oshibka', 0Ah, 0Dh,'$'
 .CODE
 start:
 push @DATA
 pop DS
;---------------sozdaniye fayla
 MOV ah, 3Ch
mov CX, 2
 LEA dx, file
 int 21h
 JC error
 MOV handle, ax
;---------------
 mov ah,09h 
 mov dx,offset prigl ;Vivesti priqlasheniye
 int 21h 
 mov ah,09h
 mov dx,offset con1 ;Vivesti poyasneniye 1 konstanti
 int 21h 
 
 mov bx,const1 ;Kod 1-oy vivodimoy konstanti
 mov cx,10h ;Schetchik cikla = 16 , t.e. 16 bit kajdoy konstanti
mov di,3 ;Schetchik dlya 3-x konstant
jmp posl
met1:
mov ah,09h
mov dx,offset con2 ;Vivesti poyasneniye 2 konstanti
int 21h
 
mov bx,const2 ;Kod 2-oy vivodimoy konstanti
mov cx,10h
jmp posl
met2:
mov ah,09h
mov dx,offset con3 ;Vivesti poyasneniye 3 konstanti
int 21h
mov bx,const3 ;Kod 3-yy vivodimoy konstanti
mov cx,10h
posl:
mov dx,30h ;v dx zanosim kod simvola 0
shl bx,1 ;sdviq soderjimoqo reqistra BX na 1 bit vlevo
adc dl,0 ;Slojeniye s uchetom flaqa CF, t.k skladivayem s nulem, to uchitivayetsa tut tolko flaq CF
int 21h
loop posl 
mov bx, handle
mov cx, 10h  
mov ah, 40h
mov bufer[SI], dl
lea dx, bufer[SI]
int 21h
 
mov bx, handle
mov cx, 10h
mov ah, 40h
mov bufer[SI], dl
lea dx, bufer[SI]
int 21h
;------------------
mov ah,09h
mov dx,offset ctrl ;Perevod stroki
int 21h 
dec di ;Umenshayem schetchik
cmp di,2 ;Smotrim di=2?
je met1 ;Da-perexod dlya vivoda 2 konstanti
cmp di,1 ;di=1?
je met2 ;Da-perexod dlya vivoda 1 konstanti
JMP SHORT zak
int 21h
zak:
;-------------------Zakritiye fayla
MOV AH, 3Eh
MOV BX, handle
int 21h
JMP SHORT kones
;-------------------
error:
MOV AH,9
LEA DX, mes
int 21h
kones:
MOV AX, 4Ch
int 21h
end start
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 22:14
Ответы с готовыми решениями:

Двоичное представление числа с плавающей точкой
День добрый, имея 4 байта от float/single средствами языка высокого уровня я могу перевести их в...

двоичное представление символа
помогите пожалуйста с решением задачи нужно ввести с клавиатуры символ, вывести его двоичное...

Представление числа с плавающей точкой
Диапазон значений типа данных signed char от -128 (10000000) до 127 (01111111). Старший разряд...

Программа преобразования двузначного шестнадцатеричного числа в символьном виде в двоичное представление
Имеется программа, которая преобразовывает двузначное шестнадцатеричное число в символьном виде в...

Нужно написать программу выполняющее преобразование:Десятичное число типа unsigned long (0...4294967295) в двоичное 32-разрядное представление регистр
Всем добрый вечер!Очень нужна помощь по решению задачек.хотябы одну из них 1.нужно написать...

2
CodeGrinder
0 / 0 / 0
Регистрация: 21.08.2008
Сообщений: 17
09.06.2009, 12:33 2
Цитата Сообщение от Lina Посмотреть сообщение
Добрый вечер! Заранее прошу извинить за некорректное изложение вопроса.Задача следующая: Имеются 3 константы с фиксированной точкой в формате слова.Нужно написать на Ассемблере программу печати двоичного представления этих констант и записать результат в файл. Не понимаю вот следующего: в пунктах 4,5,6 даны соответствующие константы,А в 9,10,11-их пояснения(для чего эти пояснения??) и почему они в одном случае отличаются,в другом нет... или можно взять любое число и дать "любое пояснение". для чего например предназначен пункт 12? что подразумевается в пункте 32? и зачем в этой программе мы используем сложение adc .. иначе не ясен весь алгоритм(смысл).. ВСЕМ ТЕМ КТО ОТКЛИКНЕТСЯ ЗАРАНЕЕ БОЛЬШОЕ-БОЛЬШОЕ СПАСИБО!! П.С не ругайте сильно,я-новичок(чайничек))
Вот соответствующий код:


1 .model SMALL
2 .STACK 100h
3 .DATA
4 const1 dw 15 ;pervaya konstanta
5 const2 dw -256 ;vtoraya
6const3 dw 65280 ;tretya
7 prigl db 'Constants in computer memory:','$'
8 ctrl db 0Dh,0Ah,'$' ;Enter, toyest perexod na nachalo tekushey stroki i perexod kursora na odnu poziciyu vniz
9 con1 db ' 6375 - ','$' ;Poyasneniye k pervoy konstante
10 con2 db ' 256 - ','$' ;... ko vtoroy
11 con3 db '65280 - ','$' ;... k tretyey
12 handle dw ?
13 bufer db 32h dup(?)
14 file DB '1.txt',0
15 mes DB 'Oshibka', 0Ah, 0Dh,'$'
16 .CODE
17 start:
18 push @DATA
19 pop DS
;---------------sozdaniye fayla
20 MOV ah, 3Ch
mov CX, 2
21 LEA dx, file
22 int 21h
23 JC error
24 MOV handle, ax
;---------------
25 mov ah,09h
26 mov dx,offset prigl ;Vivesti priqlasheniye
27 int 21h
28 mov ah,09h
29 mov dx,offset con1 ;Vivesti poyasneniye 1 konstanti
30 int 21h

31 mov bx,const1 ;Kod 1-oy vivodimoy konstanti
32 mov cx,10h ;Schetchik cikla = 16 , t.e. 16 bit kajdoy konstanti
mov di,3 ;Schetchik dlya 3-x konstant
jmp posl
met1:
mov ah,09h
mov dx,offset con2 ;Vivesti poyasneniye 2 konstanti
int 21h

mov bx,const2 ;Kod 2-oy vivodimoy konstanti
mov cx,10h
jmp posl
met2:
mov ah,09h
mov dx,offset con3 ;Vivesti poyasneniye 3 konstanti
int 21h
mov bx,const3 ;Kod 3-yy vivodimoy konstanti
mov cx,10h
posl:
mov dx,30h ;v dx zanosim kod simvola 0
shl bx,1 ;sdviq soderjimoqo reqistra BX na 1 bit vlevo
adc dl,0 ;Slojeniye s uchetom flaqa CF, t.k skladivayem s nulem, to uchitivayetsa tut tolko flaq CF
int 21h
loop posl
mov bx, handle
mov cx, 10h
mov ah, 40h
mov bufer[SI], dl
lea dx, bufer[SI]
int 21h

mov bx, handle
mov cx, 10h
mov ah, 40h
mov bufer[SI], dl
lea dx, bufer[SI]
int 21h
;------------------
mov ah,09h
mov dx,offset ctrl ;Perevod stroki
int 21h
dec di ;Umenshayem schetchik
cmp di,2 ;Smotrim di=2?
je met1 a-perexod dlya vivoda 2 konstanti
cmp di,1 ;di=1?
je met2 a-perexod dlya vivoda 1 konstanti
JMP SHORT zak
int 21h
zak:
;-------------------Zakritiye fayla
MOV AH, 3Eh
MOV BX, handle
int 21h
JMP SHORT kones
;-------------------
error:
MOV AH,9
LEA DX, mes
int 21h
kones:
MOV AX, 4Ch
int 21h
end start

Я когда первый раз название темы прочитал, то испугался!)))
0
Haster
инженер-системотехник
111 / 110 / 5
Регистрация: 10.03.2009
Сообщений: 533
09.06.2009, 14:45 3
handle - переменная, в которой хранится описатель отрываемого файла...
С пояснением для первой константы скорей всего косяк... Нужны тупо для справки, записываются текстом в файл.
В пункте 32 инициализируется цикл значением 10h (в десятичке 16) - т.е. тут выводим 16 бит каждой константы...
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2009, 14:45

Сложить два 16 разрядные числа в формате с фиксированной точкой
первое -2,45 формат 5,11 второе слагаемое 0,428 формат 2,14 формат ответа/результата 4,12

Среднее арифметическое чисел, находящихся в массиве и представленных в формате с фиксированной точкой
Всем привет, ребят. Помогите пожалуйста написать программку. В ассемблере полный нубяра. Вот сама...

Вычислите среднее арифметическое элементов массива. Числа представлены в формате с фиксированной точкой
Вычислите среднее арифметическое элементов массива Array dw 5 dup(?). Числа представленны в формате...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru