saalek110
Well-Known Member
انگار تكه آخر برنامه را توضيح نداديم. اين قسمت را:
mov cx,100 ; length of string
mov si,OFFSET Buffer ; DS:SI - address of string
xor bh,bh ; video page - 0
mov ah,0Eh ; function 0Eh - write character
NextChar:
lodsb ; AL = next character in string
int 10h ; call BIOS service
loop NextChar
به شرح سرويس 0E از وقفه 10 كه از آموزشهاي اموليتور نقل مي كنم توجه كنيد:
اين سرويس خروجي تله تايپ مي دهد.
اين سرويس چاپ مي كند و بعد كرزر را جلو مي برد و در صورت نياز صفحه را اسكرول مي كند . و در صفحه جاري مي نويسد.
و اينجا:
xor bh,bh ; video page – 0
آمده ايم با xor كردن ، bh را صفر كرده ايم. (تنظيم صفحه جاري.)
در :
mov cx,100 ; length of string
آمده ايم cx را تنظيم كرده ايم تا در لوپ استفاده شود.
اين خط هم:
mov si,OFFSET Buffer ; DS:SI - address of string
احتمالا براي استفاده lodsb است. اين كه مي گويم احتمالا چون من تا نروم با lodsb يك برنامه نسازم مطمئن نمي شوم. ولي همينه به احتمال زياد.
خلاصه تكه برنامه :
mov cx,100 ; length of string
mov si,OFFSET Buffer ; DS:SI - address of string
xor bh,bh ; video page - 0
mov ah,0Eh ; function 0Eh - write character
NextChar:
lodsb ; AL = next character in string
int 10h ; call BIOS service
loop NextChar
اين ميشه كه از قطعه داده در al بار ميشه با lodsb و بعد سرويس 0E از وقفه 10 مي آيد محتواي al را چاپ مي كند. و حلقه هم كارش اين است كه كار بار شدن و چاپ را 100 بار تكرار كند.
mov cx,100 ; length of string
mov si,OFFSET Buffer ; DS:SI - address of string
xor bh,bh ; video page - 0
mov ah,0Eh ; function 0Eh - write character
NextChar:
lodsb ; AL = next character in string
int 10h ; call BIOS service
loop NextChar
به شرح سرويس 0E از وقفه 10 كه از آموزشهاي اموليتور نقل مي كنم توجه كنيد:
کد:
INT 10h / AH = 0Eh - teletype output.
input:
AL = character to write.
This functions displays a character on the screen,
advancing the cursor and scrolling the screen as necessary.
The printing is always done to current active page.
اين سرويس خروجي تله تايپ مي دهد.
اين سرويس چاپ مي كند و بعد كرزر را جلو مي برد و در صورت نياز صفحه را اسكرول مي كند . و در صفحه جاري مي نويسد.
و اينجا:
xor bh,bh ; video page – 0
آمده ايم با xor كردن ، bh را صفر كرده ايم. (تنظيم صفحه جاري.)
در :
mov cx,100 ; length of string
آمده ايم cx را تنظيم كرده ايم تا در لوپ استفاده شود.
اين خط هم:
mov si,OFFSET Buffer ; DS:SI - address of string
احتمالا براي استفاده lodsb است. اين كه مي گويم احتمالا چون من تا نروم با lodsb يك برنامه نسازم مطمئن نمي شوم. ولي همينه به احتمال زياد.
خلاصه تكه برنامه :
mov cx,100 ; length of string
mov si,OFFSET Buffer ; DS:SI - address of string
xor bh,bh ; video page - 0
mov ah,0Eh ; function 0Eh - write character
NextChar:
lodsb ; AL = next character in string
int 10h ; call BIOS service
loop NextChar
اين ميشه كه از قطعه داده در al بار ميشه با lodsb و بعد سرويس 0E از وقفه 10 مي آيد محتواي al را چاپ مي كند. و حلقه هم كارش اين است كه كار بار شدن و چاپ را 100 بار تكرار كند.
آخرین ویرایش: