Èñõîäíèêè è ëèñòèíãè ::: Îñòàëüíîå ::: 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
  CSEG segment common 'code' ;íà÷àëî ñåãìåíòà êîäà
  assume cs:cseg,ds:cseg,es:cseg,ss:cseg
  org 100h
 
  print   macro
    local p1, p2, del, write
          mov ah,0
          push ax
          push ax
          push dx
          mov ah,9
          mov dx,offset newstr
          int 21h
          pop dx
          pop ax
          mov bl,16
  div bl
  push ax
  mov dl,al
          cmp dl,9h
  jle p1
  add dl,7h
           
  p1: add dl,30h
  mov ah,02
  int 21h
  pop ax
  mov dl,ah
          cmp dl,9h
  jle p2
  add dl,7h
          
  p2: add dl,30h
  mov ah,02
  int 21h
          mov ah,09
          mov dx,offset newstr
          int 21h
          pop ax
          xor cx,cx
          mov bl,2h
  del:    div bl
          inc cx
          push ax
          mov ah,0
          cmp al,0h
          jg  del
          mov dl,ah
          add dl,30h
          mov ah,02h
          int 21h
  write:  pop ax
          mov dl,ah
          add dl,30h
          mov ah,02h
          int 21h
          loop write
          mov ah,9
          mov dx,offset newstr
          int 21h
  endm
 
 
 
 
  main proc ;íà÷àëî ïðîöåäóðû main
          
  mov ah,9
  mov dx,offset message  
  int 21h
          mov ah,9
  mov dx,offset newstr  
  int 21h
          call enter
          call calc
          push ax
          push ax
          mov ah,9
          mov dx,offset chc
          int 21h
          pop ax
          print
          mov ah,9
          mov dx,offset smesh
          int 21h
          pop ax
          sal ax,3
          print
          
 
  mov ax,4c00h
  int 21h
 
 
  message db  'Enter A and B $'
          newstr  db 0AH,0DH, '  $'
          cha db  0AH,0DH,' Chislo A: $'
          chb db  0AH,0DH,' Chislo B: $'
          chc db  0AH,0DH,' Chislo C: $'
          cha2 db 0AH,0DH,' Chislo A/2: $'
  smesh db 0AH,0DH,' Chislo C posle sdviga: $'
 
 
  enter proc
          xor ax,ax
  mov ah,1h
  int 21h
  mov dl,al
  sub dl,30h
  cmp dl,9h
  jle M1
  sub dl,7h
  M1: mov cl,4h
  shl dl,cl
  int 21h
  sub al,30h
  cmp al,9h
  jle M2
  sub al,7h
  M2: add dl,al
          push dx
          push dx
          mov ah,9h
          mov dx,offset cha
          int 21h
          pop dx
          mov ax,dx
          print
          
  ;âòîðîå ÷èñëî
 
          mov ah,02h
          mov dl,' '
          int 21h
 
  xor ax,ax ;î÷èñòèòü ðåãèñòð ax
  mov ah,1h
  int 21h
  mov dl,al
  sub dl,30h
  cmp dl,9h
  jle z1
  sub dl,7h
  z1: mov cl,4h
  shl dl,cl
  int 21h
  sub al,30h
  cmp al,9h
  jle z2
  sub al,7h
  z2: add dl,al
          push    dx    
          push dx
          mov ah,9
          mov dx,offset chb
          int 21h
          pop dx
          mov ax,dx 
          print
               
          push    bp
          mov     bp,sp
          mov     ax,[bp+6]
          pop     bp
          push    ax      
          ret
          enter endp
 
  calc proc
          push bp
          mov bp,sp
          mov ah,02h
          mov dl,' '
          int 21h
          mov ax,[bp+6]
          mov dx,[bp+4]
          xor bx,bx
          mov ah,0
          mov dh,0
          mov bl,2  
          div bl
          push ax
          push dx
          mov ah,0
          print
          pop dx
          pop ax
          add al,dl
          mov sp,bp
          pop bp
          ret
  calc endp
 
  main endp ;êîíåö ïðîöåäóðû main
  code ends ;êîíåö ñåãìåíòà êîäà
  end main
<<< Ïðåäûäóùàÿ ðàáîòà

Âåðíóòüñÿ â ãàëåðåþ èñõîäíèêîâ
Assembler [Ñëîæåíèå ÷èñåë è ïðî÷èå èçäåâàòåëüñòâà]
Àâòîð: Àäìèíèñòðàòîð 1-ãî ðàíãà (Êîîðäèíàòîð) Sauron
Ãîðîä: Òîìñê
Äàòà: 04.01.2009  17:03
Êîììåíòàðèåâ: 4
Ïðîñìîòðîâ: 2340
Îöåíêà: 9 (2|1|2|2|2) [2]

Âåðíóòüñÿ íà ãëàâíóþ
Àâòîðñêèé êîììåíòàðèé ê ðàáîòå: Ïðîãðàììà ïðîèçâîäèò ÷òåíèå ÷èñåë À è  ñ êîíñîëè, âûâîäèò èõ â äâîè÷íîì âèäå, âû÷èñëÿåò C=A/2+B, âûâîäèò â äâîè÷íîì âèäå Ñ è ïðîèçâîäèò àðèôìåòè÷åñêèé ñäâèã Ñ íà 4 áèòà âëåâî (êàæåòñÿ)
Ðàáîòà îïóáëèêîâàíà àäìèíèñòðàòîðîì Sauron
Âû íå ìîæåòå îöåíèâàòü

ÊÎÌÌÅÍÒÀÐÈÈ Ê ÐÀÁÎÒÅ:
Àäìèíèñòðàòîð 1-ãî ðàíãà (Êîîðäèíàòîð) Sauron ::: êîììåíòàðèé îò 30.06.2009 | 09:45
Sauron Âîæäü (óð.18)
Î÷êè: 40487
Ãîðîä: Òîìñê
Òâ. ðàáîò: 168
Ðåã: 27.04.2006 (15)
Îòâåò äëÿ Ant_on92 15.06.2009 | 13:00:
â óíèâåðå ïðèäåòñÿ


--------------------
Øòîó.
Ant_on92* ::: êîììåíòàðèé îò 15.06.2009 | 13:00
Ant_on92 Ïåðñïåêòèâíûé (óð.8)
Î÷êè: 1538
Ãîðîä: ñ.Òîãóð
Òâ. ðàáîò: 2
Ðåã: 13.09.2006 (615)
Àññýìáëåð-ðîäèòåëü âñåãî)))

Íèêîãäà ÿ, íàâåðíîå, íå íàó÷óñü ïèñàòü íà íåì...


--------------------
Hello, World!
Àäìèíèñòðàòîð 1-ãî ðàíãà (Êîîðäèíàòîð) Áåëàÿ Âîëêà ::: êîììåíòàðèé îò 11.02.2009 | 18:31
Áåëàÿ Âîëêà Ìàñòåð (óð.17)
Î÷êè: 33506
Ãîðîä: Äåòñêèå ñêàçêè
Òâ. ðàáîò: 101
Ðåã: 27.09.2008 (8524)
ìì.. íå ëþáëþ ïèñàòü íà assembler. Ìíå âå÷íî ðåçèñòðîâ íå õâàòàåò


--------------------
Åñòü â æèçíè ñ÷àñòüå. Spring
Kane* ::: êîììåíòàðèé îò 11.01.2009 | 08:50
Kane Ïåðñïåêòèâíûé (óð.8)
Î÷êè: 1556
Ãîðîä: ßêóòñê
Òâ. ðàáîò: 9
Ðåã: 09.10.2008 (8737)
Êëåâî. äåéñòâèòåëüíî èçäåâàòåëüñòâà.


--------------------
Âñå ÷òî õîðîøî íà÷èíàåòñÿ êîí÷àåòñÿ ïëîõî. À ÷òî ïëîõî íà÷èíàåòñÿ êîí÷àåòñÿ åùå õóæå.