PDA

View Full Version : سوال: دریافت عدد



mazaher5723
سه شنبه 19 دی 1391, 18:13 عصر
سلام
چطور میشه یک عدد رو از ورودی تو اسمبلی دریافت کرد؟

rayarasool
سه شنبه 19 دی 1391, 20:17 عصر
با سلام

با تابع0ah وقفه 21h .

باید تایع رو در ah بریزید و آدرس حافظه رو در dx . در آخر هم وقفه رو صدا بزنید .

m.malek1
سه شنبه 19 دی 1391, 23:19 عصر
در اسمبلی باید ابتدا عدد را به صورت یک رشته عددی بگیرین سپس آن را به یک عدد باینری تبدیل کنید و در آخر برای چاپ باید دوباره آن را به رشته تبدیل کرده و در صفحه نمایش چاپ کنید

the king
چهارشنبه 20 دی 1391, 04:39 صبح
سلام
چطور میشه یک عدد رو از ورودی تو اسمبلی دریافت کرد؟



یک رشته رو از ورودی با سرویس 0A در وقفه 21h بخوانید و بعد به معادل عددی اش تبدیل کنید.
[CODE]
.MODEL SMALL
.DATA
msg1 DB "Please enter a number : $"
numMax DB 5
numLen DB ?
num DB 5 DUP (?)
numDec DW ?
.CODE
.STARTUP
MOV AH, 09h
LEA DX, msg1
INT 21h
MOV AH, 0Ah
LEA DX, numMax
INT 21h
MOV CL, numLen
MOV CH, 0
LEA SI, num
MOV BX, 0
loop1:
MOV AX, 10
MUL BX
MOV BL, [SI]
INC SI
SUB BL, '0'
MOV BH, 0
ADD BX, AX
LOOP loop1
MOV numDec, BX

ehemati
چهارشنبه 20 دی 1391, 12:39 عصر
یک رشته رو از ورودی با سرویس 0A در وقفه 21h بخوانید و بعد به معادل عددی اش تبدیل کنید.
[CODE]
.MODEL SMALL
.DATA
msg1 DB "Please enter a number : $"
numMax DB 5
numLen DB ?
num DB 5 DUP (?)
numDec DW ?
.CODE
.STARTUP
MOV AH, 09h
LEA DX, msg1
INT 21h
MOV AH, 0Ah
LEA DX, numMax
INT 21h
MOV CL, numLen
MOV CH, 0
LEA SI, num
MOV BX, 0
loop1:
MOV AX, 10
MUL BX
MOV BL, [SI]
INC SI
SUB BL, '0'
MOV BH, 0
ADD BX, AX
LOOP loop1
MOV numDec, BX

دوست عزیز این برنامه که هنگ میکنه ؟
درست اجرا میشه ولی خروجی نشون نمیده به ما :گیج:

the king
چهارشنبه 20 دی 1391, 16:09 عصر
دوست عزیز این برنامه که هنگ میکنه ؟
درست اجرا میشه ولی خروجی نشون نمیده به ما :گیج:

این کد که کامل نیست، تا اونجا نوشته شده که مقدار بره تو BX ، نه کد خروج از برنامه داره، نه تعریف Stack و نه End برنامه
چه خروجی ای باید داشته باشه؟ مقداری مثل "1234" رو از ورودی گرفتید و حالا 1234 در BX آماده است.

paniz73
یک شنبه 22 آذر 1394, 20:09 عصر
.MODEL SMALL
.stack 32
.DATA
msg1 DB "Please enter a number : $"
numMax DB 5
numLen DB ?
num DB 5 DUP (?)
numDec DW ?
.CODE
Main proc far
.START UP
MOV AH, 09h
LEA DX, msg1
INT 21h
MOV AH, 0Ah
LEA DX, numMax
INT 21h
MOV CL, numLen
MOV CH, 0
LEA SI, num
MOV BX, 0
loop1:
MOV AX, 10
MUL BX
MOV BL, [SI]
INC SI
SUB BL, '0'
MOV BH, 0
ADD BX, AX
LOOP loop1
MOV numDec, BX
;*******
Mov ax, 4cooh
Int 21
Main end p
End main

فرم کامل این سوال