بله درست است وقتی در زبان اسمبلی از کاربر عددی رو دریافت میکنید اون عدد به صورت رشته از کاربر دریافت میشه و برای استفاده اون به صورت عدد باید به مقدار عددی تبدیل بشه در زبان c تابعی بنام atoi داشتیم ولی در اسمبلی چنین تابعی نیست و باید خودمون این کار رو انجام بدیم روال کار هم به این شکل است که کاراکتر 0 کدش 48 است و اگه بیایم هر کد هر کاراکتر رو از عدد 48 کم کنیم معادل عددی اون کاراکتر بدست میاد و می تونید به عنوان عدد ازش استفاده کنید در زیر ماکروی به زبان اسمبلی قرار دادم که دقیقا این کار رو براتون انجام میده عددی که در داخل str است و طول اون رشته در len قرار داره به ماکرو میدیم بعد از تبدیل به عدد واقعی در داخل n برگشت میده و می تونیم در ادامه برنامه از این عدد استفاده کنیم.
کد:
atoi macro str,n,len
local while1
lea di,str
mov ax,0
mov bx,10
mov ch,0
mov cl,len
while1: mul bl
mov dx,0
mov dl,byte ptr[di]
sub dx,48
add ax,dx
inc di
loop while1
mov n,al
endm