Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Определение верно ли..


Автор: pdiman58 13.4.2010, 15:44
Задание таково:

"Определить, верно ли, что при делении не отрицательного числа A на положительное число B получается остаток, равный одному из заданных чисел R или S."

Я начал делать вот так..

Код

  mov al, [0200]
  mov bh, [0201]
  div bh
  mov [0203], ah
  mov cl, [0208]
  mov ch, [0209]



объясните как можно сравнить чтобы ни больше\меньше или равно.. а сравнение равно ли..

и как, и через какую команду, можно обозначить "верно ли"..??

Автор: airyashov 13.4.2010, 20:04
Код

cmp ah, [0208]
jz верно
cmp ah, [0209]
jz верно
jmp неверно

Автор: pdiman58 13.4.2010, 21:20
 
Код

 mov al, [0200]
  mov bh, [0201]
  div bh
  mov [0203], ah
  mov cl, [0208]
  mov ch, [0209]
  cmp ah, [0208]
  jz верно
  cmp ah, [0209]
  jz верно
  jmp неверно


получается вот так..?
только забыл уточнить, я делаю в TurboDebugger 3.0..
по заданию в нем нужно делать..
но рядом с операторами сравнения, текст нельзя написать..


или же вместо слов 'верно' 'неверно' нужно написать последующий адрес перехода..??

Автор: Mikl_ 14.4.2010, 03:40
pdiman58, 
чтобы подсчитано было верно нужен вот такой код 
Код
mov al, [0200]
  mov ah,0;<-- обязательно при делении AL на BH
  mov bh, [0201]
  div bh
 smile 

Автор: airyashov 14.4.2010, 08:59
Цитата(pdiman58 @  13.4.2010,  21:20 Найти цитируемый пост)
или же вместо слов 'верно' 'неверно' нужно написать последующий адрес перехода..??

именно

Автор: pdiman58 14.4.2010, 20:01
Код

           mov al, [0200]
           mov ah, 0           
           mov bh, [0201]
           div bh
           mov [0203], ah
           cmp ah, [0208]
           jz 0118
0118:  cmp ah, [0209]
           jz 0119
0119:  jmp 0120
0120: ...


получается вот так..??
 
прост не понимаю как же организована проверка на "верно ли"..

Автор: pdiman58 15.4.2010, 20:57
или все же вот так..??

Код

           mov al, [0200]
           mov ah, 0           
           mov bh, [0201]
           div bh
           mov [0203], ah
           cmp ah, [0208]
           jz 0120
0118:  cmp ah, [0209]
           jz 0120
0119:  jmp 0120
0120: ...

Автор: iff 16.4.2010, 17:36
Кататак:
Код

        .MODEL  TINY
        .CODE
        ORG     100H
MAIN:
        MOV     AL, A
        DIV     B
        CMP     AH, R
        JE      RIGHT
        CMP     AH, S
        JE      RIGHT
WRONG:  LEA     DX, WRONGs
        JMP     PRINT
RIGHT:  LEA     DX, RIGHTs
PRINT:  MOV     AH, 9
        INT     21H
        RET

A       DB      200
B       DB      78
R       DB      255
S       DB      44
RIGHTs  DB      'Верно!$'
WRONGs  DB      'Неверно!$'
END     MAIN

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)