PDA

View Full Version : مشکل این کد چیه <mov eax,dx:ax> ؟



احسان_1
دوشنبه 23 دی 1387, 20:52 عصر
با سلام و عرض خسته نباشید .

بنده در کد زیر با استفاده از دستور cwd سعی کردم که یک بایت رو به دوبایت تبدیل کنم که نهایتاً این دو بایت در ثبات های dx:ax قرار خواهند گرفت
اما وقتی می خوام این دو بایت رو در یک ثبات دوبایتی مثل eax کپی کنم ارور می ده ؟؟؟

لطفاً کمکم کنید . با تشکر فراوان:قلب:



title ehsan
.model small
.stack 100h


.code
main proc
mov ax,@data
mov ds,ax

.386
mov ax,5
cwd

mov eax,dx:ax




main endp
end main

hoax3r
دوشنبه 30 دی 1387, 16:24 عصر
سلام

اول اینکه :


با استفاده از دستور cwd سعی کردم که یک بایت رو به دوبایت تبدیل کنم

این دستور 2 بایت رو به 4 بایت تبدیل میکنه


ثبات دوبایتی مثل eax

این ثبات 4 بایت داره


مشکل اینه که نمیتونی از dx:ax استفاده کنین باید هر ثبات رو جدا در ثبات مقصد قرار بدی
بهتره ثبات مقصد در این مورد غیر eax باشه، بعد با این دستورا مثلا در ebx بریزشون


mov bx, dx
shl ebx, 16
mov bx, ax


شاد باشید