PDA

View Full Version : این کد چرا عدد رو به حرف تبدیل نمی کنه ؟



seyedVB
دوشنبه 01 آذر 1389, 16:25 عصر
به نام خدا . سلام . این کد عدد رو روی مانیتور چاپ نمی کنه ، من به اون عدد یک $ اضافه می کنم ولی جواب نمیده :

TITLE digitDisplay
.model small
.stack
.data
num db 3 ; num=3
.code
start:
mov ax,@data
mov ds,ax
add num,'$'
;;;;;;;;;print
mov ah,09h
mov dx,offset num
int 21h
;;;;;;end print
exit:
xor ah,ah
int 16h
mov ax,4c00h
int 21h
end

Delphi Coder
دوشنبه 01 آذر 1389, 17:46 عصر
این تابع کارش چاپ string هست باید اول عدد رو تبدیل به string کنید.

xman_1365_x
سه شنبه 09 آذر 1389, 01:40 صبح
اول اينكه شما از وقفه 9 استفاده كردي كه براي چاپ رشته هست نه كاراكتر كار اشتباه ديگه اي كه كردين اومدين جمع كردين با $ يعني 36 دسيمال اينطوري انتهاشم مشخص نكردين صحيح به اين صورت هست



pkey db "press any key...$"

lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx


بايد از كد ذيل استفاده كنيد



mov ah,02h
mov dl,x
int 21h


به جاي x معادل كاراكتر يا عدديش رو بايد بنويسيد(اسكي)
مثلا عدد 65 حرف A
حالا شما مي خواي 3 رو نمايش بدي راه آسون جمع كردنش با 48 دسيمال هست. (روش هاي ديگه اي هم هست)

xman_1365_x
سه شنبه 09 آذر 1389, 01:47 صبح
اول اينكه شما از وقفه 9 استفاده كردي كه براي چاپ رشته هست نه كاراكتر كار اشتباه ديگه اي كه كردين اومدين جمع كردين با $ يعني 36 دسيمال اينطوري انتهاشم مشخص نكردين صحيح به اين صورت هست



pkey db "press any key...$"

lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx


بايد از كد ذيل استفاده كنيد



mov ah,02h
mov dl,x
int 21h


به جاي x معادل كاراكتر يا عدديش رو بايد بنويسيد(اسكي)
مثلا عدد 65 حرف A
حالا شما مي خواي 3 رو نمايش بدي راه آسون جمع كردنش با 48 دسيمال هست. (روش هاي ديگه اي هم هست)