View Full Version : مبتدی: راهنمایی در مورد اپراتور $
javaplus
جمعه 15 دی 1391, 15:46 عصر
سلام
1. اپراتور $چه کاری انجام میده؟
2.XLAT چه کاری انجام میده؟
Delphi Coder
شنبه 16 دی 1391, 03:21 صبح
1- یکی از سرویسهای وقفه 21 دقیقا سرویس شماره 9 که کارش نمایش رشته هست از کاراکتر $ انتهای رشته رو تشخیص میده.
2- به زبان خودمونی معادل این دستور هست
mov al,[bx+al]البته این دستور از نظر گرامر زبان اسمبلی اشتباهه نوشتم که کارش رو متوجه بشید. BX در اصل اشاره گر به table هست و al هم ایندکس دستور xlat ایندکس al از جدول bx رو در al قرار میده.
xman_1365_x
یک شنبه 17 دی 1391, 00:45 صبح
1. اپراتور $چه کاری انجام میده؟
آدرس مکان جاری رو در خودش داره
موفق باشی
Delphi Coder
یک شنبه 17 دی 1391, 01:33 صبح
آدرس مکان جاری رو در خودش داره
موفق باشییه مثال هم میشه بزنیدا؟
the king
یک شنبه 17 دی 1391, 02:04 صبح
یه مثال هم میشه بزنیدا؟
می خواهیم بدانیم که بین دو کد $ , MOV BX و $ , MOV AX دقیقا چند بایت کد زبان ماشین فاصله است :
MOV BX, $
.
.
.
MOV AX, $
SUB AX, BX
ما آدرس دستور اول رو در BX قرار می دهیم و دومی را در AX و سپس از هم کسر می کنیم تا فاصله شون بدست بیاد.
این یک مثال کامل است، فاصله بین اون دو دستور (بر حسب بایت) رو با روتین print_ax به کاربر نشان می دهیم (نمایش یک متغیر 16 بیتی بصورت عددی ده دهی)
.MODEL SMALL
.CODE
.STARTUP
MOV BX, $
.
.
.
MOV AX, $
SUB AX, BX
CALL print_ax
MOV AH, 08h
INT 21h
.EXIT
print_ax:
MOV CX, 0
MOV BX, 10
loop_1:
MOV DX, 0
DIV BX
PUSH DX
INC CX
CMP AX, 0
JNE loop_1
MOV AH, 2
loop_2:
POP DX
ADD DL, "0"
INT 21H
LOOP loop_2
RET
.STACK
END
Delphi Coder
یک شنبه 17 دی 1391, 02:31 صبح
با توربواسمبلر این error رو میده
Operand types do not match
چه ax میزنم چه al وچه eax همش همین پیغام رو میده. با کدوم اسمبلر قابل کمپایل هست این کد؟
the king
یک شنبه 17 دی 1391, 03:45 صبح
با توربواسمبلر این error رو میده
Operand types do not match
چه ax میزنم چه al وچه eax همش همین پیغام رو میده. با کدوم اسمبلر قابل کمپایل هست این کد؟
(Microsoft Assembler (MASM
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.