امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
برای رفتن به خط بعدی
نویسنده پیام
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #1
Question  برای رفتن به خط بعدی
کد:
--------------------------------------------------------------------------------

برای رفتن به خط بعدی
MOV  AH,02H
MOV  DL,0AH   خط جدید
INT  21H

MOV  AH,02H
MOV  DL,0DH   ابتدای خط
INT  21H

--------------------------------------------------------------------------------

Assembly Language 039

۱۶-فروردین-۱۳۹۱, ۰۵:۵۳:۳۰
ارسال‌ها
پاسخ
megatron آفلاین
عضو افتخاری
****

ارسال‌ها: 228
موضوع‌ها: 48
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 94
( 171 تشکر در 91 ارسال )
ارسال: #2
RE: برای رفتن به خط بعدی
The.Ghost جان اون ماکرویی که برای رفتن به خط جدید نوشته بودم اشتباه بود؟؟؟
۱۶-فروردین-۱۳۹۱, ۱۶:۲۸:۳۴
ارسال‌ها
پاسخ
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #3
Question  RE: برای رفتن به خط بعدی
راحت ترین کار و سریع ترین کار برای رفتن به خط بعدی همانی بود که نوشتم.
خیلی راه های دیگه هم برای رفتن به خط بعد وجود داره.

Assembly Language 039

(آخرین ویرایش در این ارسال: ۱۶-فروردین-۱۳۹۱, ۱۸:۰۸:۵۲، توسط The.Ghost.)
۱۶-فروردین-۱۳۹۱, ۱۸:۰۵:۲۳
ارسال‌ها
پاسخ
megatron آفلاین
عضو افتخاری
****

ارسال‌ها: 228
موضوع‌ها: 48
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 94
( 171 تشکر در 91 ارسال )
ارسال: #4
RE: برای رفتن به خط بعدی
سلام.
عزیز من یه کم کدو ویرایش کردم و قسمتای اضافیشو حذف کردم.Biggrin
حالا می خوام وقتی اینتر بزنم بره خط بعد نمیره.
همون ماکرویی که نوشته بودم رو توش گذاشتم ولی باز میاد اول خط..!!

مشکل کجاست؟؟:0-0:


فایل‌(های) پیوست شده
.zip   man.zip (اندازه: 399 bytes / تعداد دفعات دریافت: 44)
۱۶-فروردین-۱۳۹۱, ۱۸:۱۶:۱۷
ارسال‌ها
پاسخ
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #5
RE: برای رفتن به خط بعدی
چشمم روشن برنامه من را خلاصه می کنی.Angry
شوخی کردم. ClapClap
بیا دوست عزیز درستش کردم.
فقط یادت باشه که وقتی Enter زدی میره خط بعدی.
و قتی که کاراکتر 0 (صفر) را زدی دیگه رشته تمام میشه شما می تونی به جای عدد 0 کاراکتر نقطه را بگیری.
پس آخر رشته با کاراکتر صفر تمام میشه یعنی وقتی کاراکتر صفر را زدی دیگه رشته تمام میشه.
به عکس زیر نگاه کن.

راستی اگه یکمی هم خودت تلاش کنی بد نیست.

کد:
; multi-segment executable file template.

data segment
; add your data here!
COUT DW ?
COLOR DB ?
ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

; add your code here


MOV COLOR,2
MOV COUT,0


L1:

MOV AH,01H
INT 21H

INC COUT


CMP AL,20H
JNE L2

MOV BL,COLOR
MOV CX,COUT
MOV AH,09
INT 10h


ADD COLOR,2



L2:
CMP AL,0DH
JNE L3

MOV AH,02H
MOV DL,0AH
INT 21H

MOV AH,02H
MOV DL,0DH
INT 21H

L3:
CMP AL,30H
JNE L1


mov ax, 4c00h ; exit to operating system.
int 21h
ends

end start ; set entry point and stop the assembler.


فایل‌(های) پیوست شده بندانگشتی (ها)
   

.txt   GHOST.txt (اندازه: 933 bytes / تعداد دفعات دریافت: 40)

Assembly Language 039

۱۶-فروردین-۱۳۹۱, ۱۸:۳۸:۴۸
ارسال‌ها
پاسخ
تشکر شده توسط : megatron, osm4n
megatron آفلاین
عضو افتخاری
****

ارسال‌ها: 228
موضوع‌ها: 48
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 94
( 171 تشکر در 91 ارسال )
ارسال: #6
RE: برای رفتن به خط بعدی
داداش دستت درد نکنه...
بابا بخدا استادامون اصلا اسمبلی یاد ندادن به ما:(
اینقدر رو که نوشتم که بالای 10 تا کتاب خودنم تا بفهمم چی به چیه!!
(آخرین ویرایش در این ارسال: ۱۷-فروردین-۱۳۹۱, ۱۴:۲۲:۱۵، توسط megatron.)
۱۷-فروردین-۱۳۹۱, ۱۴:۱۱:۳۹
ارسال‌ها
پاسخ
تشکر شده توسط : The.Ghost
megatron آفلاین
عضو افتخاری
****

ارسال‌ها: 228
موضوع‌ها: 48
تاریخ عضویت: فروردین ۱۳۸۷

تشکرها : 94
( 171 تشکر در 91 ارسال )
ارسال: #7
RE: برای رفتن به خط بعدی
راستی The.Ghost جان می تونی جلوی بعضی خطها توضیحات بنویسی که چیکار می کنه...
شرمنده تو شدم خدایی که اینقدر زحمتت دادم:")
۱۸-فروردین-۱۳۹۱, ۱۴:۰۵:۳۸
ارسال‌ها
پاسخ
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #8
RE: برای رفتن به خط بعدی
سلام
کد:
COUT DW ?
COLOR DB ?
برای تعریف متغیر رنگ و تعداد حرف های وارد شده.

کد:
MOV COLOR,2
MOV COUT,0
دادن مقدار اولیه تعداد حرف های وارد شده در ابتدا صفر است
مقدار رنگ عدد دو است که معادل یک رنگ در زبان اسمبلی است.

کد:
L1:
تعریف یک برچسب می باشد که به آن پرش می کنیم.

کد:
MOV AH,01H
INT 21H

INC COUT
یک کاراکتر بخوان و یک شماره هم به تعداد حروف که صفر است اضافه کن.


کد:
CMP AL,20H
JNE L2

کاراکتر وارد شده را با کد اسکی فاصله برسی کن اگر مخالف است پرش کن به برچسب L2 در غیر این صورت دستورات پایین را اجراء کن.

کد:
MOV BL,COLOR
MOV CX,COUT
MOV AH,09
INT 10h


ADD COLOR,2
دستورات پایین این است که مقدار رنگ کاراکتر وارد شده باید تغییر کند چون فاصله زده شده است و به متغیر رنگ دو عدد اضافه کن که حروف بعدی را با رنگ جدید نمایش دهد.

کد:
CMP AL,0DH
JNE L3

اگر کاراکتر وارد شده مخالف Enter است پرش کن به L3.


کد:
MOV AH,02H
MOV DL,0AH
INT 21H

MOV AH,02H
MOV DL,0DH
INT 21H
در غیر این صورت اگر مساوی Enter است مکان نما را به خط پایین و سر خط منتقل کن.


کد:
L3:
CMP AL,30H
JNE L1
برسی کن که اگر کاربر کاراکتر صفر را وارد کرده میشه پایان برنامه در غیر این صورت دوباره دستورات را از ائل اجراء کن.


دوست عزیز امیدوارم خوب تونسته باشم توضیح بدم.
موفق باشی.Clap

Assembly Language 039

۱۹-فروردین-۱۳۹۱, ۱۶:۵۵:۳۶
ارسال‌ها
پاسخ
تشکر شده توسط : megatron
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #9
RE: برای رفتن به خط بعدی
نقل قول: سلام
اون برنامه ای بود که واسم نوشته بودی....هر بار اسپیس می زدی رنگ عوض میشد؟؟
می خوام اونو به یه شکل دیگه واسم بنویسی....

سلام دوست من
به چه شکل برات بنویسم لطفا بیشتر توضیح بده من متوجه نشودم.Whistle

ConfusedConfusedConfusedConfusedConfusedConfusedConfusedConfusedConfusedConfused

Assembly Language 039

(آخرین ویرایش در این ارسال: ۰۸-تير-۱۳۹۱, ۱۴:۴۷:۰۸، توسط The.Ghost.)
۰۸-تير-۱۳۹۱, ۱۴:۴۶:۱۸
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS