Чтение 2-х чисел в сборке и сохранение их в переменной - PullRequest
0 голосов
/ 16 октября 2011

просто, чтобы поставить его там - я действительно искал и пытался найти легкий для понимания учебник, но не мог: / .. Я все еще новичок в этом.

Но что яЯ борюсь с тем, чтобы ввести 2 числа от пользователя и сохранить его в переменной.А потом позже сравните его с максимальным значением.

output db 10,13, "Enter a number: $"
asq dw 10,13, "$" ; ascii values for a new line
stilltoimplement db 10,13, "Do calculations $"

.code 

jmp start 

    number db ?
    max db 14

start:
    mov ax,@data 
    mov ds,ax

    mov ah,09 ;prints new line
    mov dx, offset output
    int 21h

    mov ah, 01 ;checks for key
    mov al, 01
    int 21h
    mov number, al


    cmp number,14
    jg start
    jl part2

part2:

    mov ah,09
    mov dx,offset stilltoimplement
    int 21h

ending:
    mov ah,4ch
    mov al,00
    int 21h ;End the program

END

1 Ответ

0 голосов
/ 29 марта 2012

Если вы хотите добавить многозначные числа, вы можете сохранить цифры в регистре, умножив текущее число на 10 на ввод цифр.

Я думаю, что вы на x86, так что у вас есть6 регистров общего назначения.

В псевдокоде, подобном ассемблеру:

 register a = 0 
 register b = 0 
 register c = 0 

 num1:

 c = getDigit() 
 if c is a delimiter/sentinel value jump to num2
 a = a * 10 
 a = a + c 
 jump to num1

 num2: 

 c = getDigit() 
 if c is a delimiter/sentinel value jump to sum
 b = b * 10 
 b = b + c 
 jump to num2

 sum:
 a = a + b

и ваша сумма теперь находится в

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...