View Full Version : گرفتن رشته با وقفه های بایوس؟
one hacker alone
شنبه 09 شهریور 1392, 23:51 عصر
با سلام
میخواستم بدونم چجوری میتونم رشته ای رو از کاربر بگیرم و مقایسه اش کنم
با وقفه ی 21 امکان پذیر هست اما من نمیتونم از وقفه های داس استفاده کنم برا همین نیاز به وقفه های بایوس دارم
fjm11100
یک شنبه 10 شهریور 1392, 13:47 عصر
با وقفه 16h باید کاراکتر به کارکتر بگیری
برای اتمام هم یک شرط بزار که کد Enter بود از حلقه گرفتن کارکترها بیاد بیرون
one hacker alone
یک شنبه 10 شهریور 1392, 19:19 عصر
اینارو میدونم اما میخوام بدونم کاراکترهای گرفته شده رو تو چی ذخیره کنم؟
darknes666
یک شنبه 10 شهریور 1392, 20:28 عصر
این کد من رو تحلیل کن اونوقت میتونی این کار رو کنی.
این برنامه رشته ی شما رو میگیره تو خط بعد چاپش میکنه.(اخر رشته اینتر میزنی)
DATA SEGMENT
NUM1 DB 1000 DUP(0)
NEL DB 0AH,"$"
ENDS
STACK SEGMENT
DW 128H DUP(0)
ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,NUM1
LABEL1:
MOV AH,1
INT 21H
CMP AL,0DH
JE LABEL2
MOV [SI],AL
INC SI
JMP LABEL1
LABEL2:
INC SI
MOV [SI],"$"
MOV AH,9H
LEA DX,NEL
INT 21H
MOV AH,9H
LEA DX,NUM1
INT 21H
MOV AX, 4c00H
INT 21H
ENDS
END START
فرقی هم نمیکنه که با int 21h باشه یا int 16h
milad1340
شنبه 02 آذر 1392, 11:08 صبح
این کدیه که من نوشتم البته نمیدونم بهینه هست یا نه اما کار راه اندازه
در ضمن پیشنهاد میکنم که بجای وقفه های داس از وقفه های بایوس استفاده کنین
درسته سختره اما هم سرعتش بیشتره هم مثل وقفه 21h فقط مخصوص داس و تو سیستم عامل های دیگه هم جواب میده
data segment
string db 10 dup('$')
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
mov [string+9],0
lea si,string
mov bx,0fh ; set color
mov ah,3
int 10h ;get Cursor position
mov cx,1 ;nomber of char for print
str:
mov ah,00
int 16h ;
cmp al,0dh ;'enter-key' test
je end_str ;if al='enter-key' jomp to end of string
mov [si],al ; store char
mov ah,9
int 10h ;print char
inc dl ;go to next column
mov ah,2
int 10h ;set Cursor position
inc si
cmp [si],0;test end of string
jne str
end_str:
mov [si],0 ; set null for end
mov ax, 4c00h ; exit to operating system.
int 21h
ends
end start ;
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.