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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2009, 15:21   #1
=Apple=
Пользователь
 
Аватар для =Apple=
 
Регистрация: 21.05.2009
Сообщений: 14
Вопрос Переполнение и перенос числа в ассемблере

Предыстория: друг-заочник должен написать курсовой на эту тему, не знаю с каких соображений попросил посмотреть и помочь.

Из того что нашел и прочитал смог "наваять" следующее:


Код:
sseg segment stack 'stack'
db 128 dup(?)
sseg ends
dseg segment 'data'
Stroka_1 DB 'переполнение $'
Stroka_2 DB ' перенос$'
a DW 11
b DW 22
c DW ?
dseg ends

cseg segment 'code'
assume cs:cseg,ds:dseg,ss:sseg,es:nothing
start:MOV ax,dseg
MOV ds,ax
;-----------------------------------------------
MOV AX,0600H ;ochistka ekrana
MOV BH,07
MOV CX,0000
MOV DX,184FH
INT 10H
;-------------------------------------------------
mov ax, 0
mov ax, a
add ax, b
mov c, ax
JO m1
JB m2
mov bx, 0
mov bx, a
imul b
mov c, bx
JO m1
JB m2
;-------------------------------------------------
:m1 MOV AH,09H ;vivod soobschenija
LEA DX, Stroka_1
INT 21H
;-------------------------------------------------
:m2 MOV AH,09H ;vivod soobschenija
LEA DX, Stroka_2
INT 21H
;-------------------------------------------------
mov ah, 4ch ;vihod
int 21h
start endp
cseg ends
end start

Подправьте, пожалуйста... Может я совсем не то пытаюсь сделать?
Никогда человек не бывает так близок к совершенству, как при заполнении анкеты на работу

Чтобы получать правильные ответы, нужно задавать правильные вопросы

Последний раз редактировалось Stilet; 03.06.2009 в 16:04.
=Apple= вне форума Ответить с цитированием
Старый 03.06.2009, 16:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
add ax, b
Может [B]add ax, ?
И т.д. по тексту...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2009, 18:11   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Брр. может хотя бы так. Компилировать не пробовал, просто исправил, что нашел.
Код:
sseg segment stack 'stack'
db 128 dup(?)
sseg ends
dseg segment 'data'
Stroka_1 DB 'переполнение $'
Stroka_2 DB ' перенос$'
a DW 11
b DW 22
c DW ?
dseg ends

cseg segment 'code'
assume cs:cseg,ds:dseg,ss:sseg,es:nothing
start:
  MOV ax,dseg
  MOV ds,ax
;-----------------------------------------------
  MOV AX,0600H ;ochistka ekrana
  MOV BH,07
  MOV CX,0000
  MOV DX,184FH
  INT 10H
;-------------------------------------------------
  mov ax, [a]
  add ax, [b]
  mov [c], ax
  JNO m1

  MOV AH,09H ;vivod soobschenija
  LEA DX, Stroka_1
  INT 21H
m1:
  JNB l1

  MOV AH,09H ;vivod soobschenija
  LEA DX, Stroka_2
  INT 21H
l1:  
  mov bx, [a]
  imul [b]
  mov [c], bx
  JNO m2

  MOV AH,09H ;vivod soobschenija
  LEA DX, Stroka_1
  INT 21H
m2:
  JNB l2

  MOV AH,09H ;vivod soobschenija
  LEA DX, Stroka_2
  INT 21H
l2:  

  mov ah, 4ch ;vihod
  int 21h
start endp
cseg ends
end start
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 03.06.2009 в 18:18.
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переполнение стека Ake Паскаль, Turbo Pascal, PascalABC.NET 3 30.05.2009 22:39
Переполнение Стека Викдон Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2008 19:16
массивы, переполнение при делении Alter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 21.05.2008 21:11