پرسش و پاسخ در برنامه نویسی اسمبلی

sayyad84

متخصص زبان Assembly
کاربر ممتاز
اره عدد يك رقمي ميخوام حالا ماكزيمم و مينيمم نداد مهم نيست اما وقتي 9تا عددو ميگيره دوباره از 4چاپ ميكنه بعدش عدد مورد نظرو وارد ميكنم 0 ميده فقط من مي خوام انديس عددمو تو ارايه بده
با سلام،
برنامه رو تو تاپیک برنامه های نوشته شده می ذارم!
 

Ronin87

عضو جدید
سلام خدمت دوستان
میخواستم ببینم کسی هست یک اسمبلر 80386 را داشته باشه؟(به کد)
و یا به زبان c,java و یا هر زبان دیگری؟
 

هانا و هلنا

عضو جدید
کمک در مورد حل این پروژه

کمک در مورد حل این پروژه

سلام بچه ها من دو برنامه به زبان اسمبلی دارم که یکی اش ساعت گرافیکی و اون یکی اش هم برنامه تاریخ حالا میخوام که این دو برنامه رو همزمان توی یه برنامه بنویسم زمانی که برنامه رو اجرا میکنم اول تاریخ رو نشونم میده بعد هم توی یه صفحه ی جدا ساعت گرافیکی من میدونم که اشکال برنامه ام اینه که تاریخ توی صفحه 40*80 ولی ساعت توی یه صفحه ی 25*40 حالا موندم که چطوری این دو تا هر دو توی یک صفحه اجرا بشن data segment
col dw 320
row dw 240
x dw 320, 330, 340, 350, 360
dw 370, 378, 386, 394, 400
dw 406, 411, 415, 417, 419
dw 420, 419, 417, 415, 411
dw 406, 400, 394, 386, 378
dw 370, 360, 350, 340, 330
dw 320, 309, 299, 289, 279
dw 270, 261, 253, 245, 239
dw 233, 228, 224, 222, 220
dw 220, 220, 222, 224, 228
dw 233, 239, 245, 253, 261
dw 269, 279, 289, 299, 309




y dw 140, 140, 142, 144, 148
dw 153, 159, 165, 173, 181
dw 189, 199, 209, 219, 229
dw 240, 250, 260, 270, 280
dw 290, 298, 306, 314, 320
dw 326, 331, 335, 337, 339
dw 340, 339, 337, 335, 331
dw 326, 320, 314, 306, 298
dw 290, 280, 270, 260, 250
dw 240, 229, 219, 209, 199
dw 190, 181, 173, 165, 159
dw 153, 148, 144, 142, 140




mx dw 320, 329, 338, 347, 356
dw 365, 372, 380, 386, 392
dw 397, 402, 405, 408, 409
dw 410, 409, 408, 405, 402
dw 397, 392, 386, 380, 372
dw 365, 356, 347, 338, 329
dw 320, 310, 301, 292, 283
dw 275, 267, 259, 253, 247
dw 242, 237, 234, 231, 230
dw 230, 230, 231, 234, 237
dw 242, 247, 253, 259, 267
dw 274, 283, 292, 301, 310



my dw 150, 150, 151, 154, 157
dw 162, 167, 173, 179, 187
dw 194, 203, 212, 221, 230
dw 240, 249, 258, 267, 276
dw 285, 292, 300, 306, 312
dw 317, 322, 325, 328, 329
dw 330, 329, 328, 325, 322
dw 317, 312, 306, 300, 292
dw 285, 276, 267, 258, 249
dw 240, 230, 221, 212, 203
dw 195, 187, 179, 173, 167
dw 162, 157, 154, 151, 150



hx dw 320, 350, 371, 380, 371
dw 350, 320, 290, 268, 260
dw 268, 290
hy dw 180, 188, 209, 240, 270
dw 291, 300, 291, 270, 240
dw 210, 188

r dw ?
lcolor db ?
parac dw 4 dup(0)
Year DW ?
Month DB ?
Day DB ?
Day_of_week DB ?

Print_Year DB 4 dup (' '),'$'
Print_Day DB 2 dup ('0'),'$'

Sunday DB 'Sunday$'
Monday DB 'Monday$'
Tuesday DB 'Tuesday$'
Wednesday DB 'Wednesday$'
Thursday DB 'Thursday$'
Friday DB 'Friday$'
Saturday DB 'Saturday$'

January DB 'January$'
February DB 'February$'
March DB 'March$'
April DB 'April$'
May DB 'May$'
June DB 'June$'
July DB 'July$'
August DB 'August$'
September DB 'September$'
October DB 'October$'
November DB 'November$'
December DB 'December$'
data ends
;--------------------------------------------------------------------
code segment
main proc far
assume cs:code,ds:data,es:data
start: mov ax,data
mov ds,ax
mov es,ax
CALL Print_System_Date
mv: mov ah,0
mov al,12h
int 10h


mov si,offset x
mov di,offset y
mov bl,60
init: mov ax,0c05h
mov bh,0
mov dx,[di]
mov cx,[si]
int 10h
inc si
inc si
inc di
inc di
dec bl
jne init

mov si,offset x
mov di,offset y
mov bl,12
init1: mov ax,0c03h
mov bh,0
mov dx,[di]
mov cx,[si]
int 10h
add si,10
add di,10
dec bl
jne init1


mov col,320
mov row,240

mov ah,2ch
int 21h
mov si,offset x
mov di,offset y
add dh,dh
mov al,dh
mov ah,00h
add si,ax
add di,ax
mov lcolor,0fh
call draw_line

mov ah,2ch
int 21h
mov si,offset mx
mov di,offset my
add cl,cl
mov al,cl
mov ah,00h
add si,ax
add di,ax
mov lcolor,0ah
call draw_line

mov ah,2ch
int 21h
mov si,offset hx
mov di,offset hy
mov al,ch
mov ah,00h
mov bl,12
div bl
add ah,ah
mov al,ah
mov ah,00h
add si,ax
add di,ax
mov lcolor,09h
call draw_line


mov ah,2ch
int 21h
cmp cl,59
jne con
cmp dh,55
jl con
call beep
call delay1
jmp last

con: mov ah,2ch
int 21h
cmp cl,0
jne con1
cmp dh,0
jne con1
call beep
call delay1
jmp last

con1:
call gensound
call delay
last: mov ah,0bh
int 21h
cmp al,0
jne exit
jmp mv
mov ah,4ch
int 21h
exit: mov ah,4ch
int 21h
main endp
;-------------------------------------------------------------
clear proc near
push ax
push bx
push cx
push dx
mov ah,6
mov al,0
mov bh,7
mov ch,0
mov cl,0
mov dh,24
mov dl,79
int 10h
mov dx,0
mov ah,2
int 10h
pop dx
pop cx
pop bx
pop ax
ret
clear endp
;----------------------------------------------------------
delay proc near
push ax
push bx
push cx
push dx
mov bx,8000
wt: mov cx,55afh
rt: loop rt
dec bx
jnz wt
pop dx
pop cx
pop bx
pop ax
ret
delay endp
;-------------------------------------------------------------------
delay1 proc near
push ax
push bx
push cx
push dx
mov bx,6700
wt1: mov cx,55afh
rt1: loop rt1
dec bx
jnz wt1
pop dx
pop cx
pop bx
pop ax
ret
delay1 endp

;-----------------------------------------------------------------
draw_line proc near
push ax
push bx
push cx
push dx
mov ax,col
sub ax,[si]
jb rl
mov parac,ax
mov parac+2,-1
jmp rc
rl: neg ax
mov parac,ax
mov parac+2,1
rc: mov ax,row
sub ax,[di]
jb cll
mov parac+4,ax
mov parac+6,-1
jmp out1
cll: neg ax
mov parac+4,ax
mov parac+6,1
out1: mov bx,parac
sub ax,bx
jb clgrl
mov cx,0
rlgcl: mov ax,parac
mul cx
mov bx,parac+4
div bx
cmp parac+2,1
je xsl
neg ax
xsl: add ax,col
mov dx,ax
push cx
cmp parac+6,1
je plush
neg cx
plush: add cx,row
mov ah,0
xchg cx,dx
mov ah,0ch
mov al,lcolor
int 10h
pop cx
inc cx
cmp cx,parac+4
jbe rlgcl
jmp endline
clgrl: mov cx,0
clgrl1: mov ax,parac+4
mul cx
mov bx,parac
div bx
cmp parac+6,1
je xsh
neg ax
xsh: add ax,row
mov dx,ax
push cx
cmp parac+2,1
je plusl
neg cx
plusl: add cx,col
mov bh,0
mov ah,0ch
mov al,lcolor
int 10h
pop cx
inc cx
cmp cx,parac
jbe clgrl1
endline: pop dx
pop cx
pop bx
pop ax
ret
draw_line endp

;---------------------------------------------
gensound proc near
push ax
push bx
push cx
push dx
push di
mov di,1500
mov al,0b6h
out 43h,al
mov dx,12h
mov ax,3280h
div di
out 42h,al
mov al,ah
out 42h,al
in al,61h
mov ah,al
or al,3
out 61h,al
mov bx,100
wait1: mov cx,2800
dy: loop dy
dec bx
jne wait1
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop bx
pop ax
ret
gensound endp
;----------------------------------------------------------------------------------
beep proc near
push ax
push bx
push cx
push dx
push di
cmp dh,0
je n
mov di,500
jmp n1
n: mov di,1500
n1: mov al,0b6h
out 43h,al
mov dx,12h
mov ax,3280h
div di
out 42h,al
mov al,ah
out 42h,al
in al,61h
mov ah,al
or al,3
out 61h,al
mov bx,10000
w: mov cx,2800
d: loop d
dec bx
jne w
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop bx
pop ax
ret
beep endp
;*********** GotoXY **************;
GotoXY PROC
MOV AH , 2H
MOV BH , 0
INT 10H
RET
GotoXY ENDP
;*********** GotoXY **************;
;------------------------------------------
Print_System_Date Proc
;CX = year (1980-2099).
;DH = month.
;DL = day.
;AL = day of week (00h=Sunday)

MOV AH, 2AH
INT 21H

MOV Year , CX
MOV Month , DH
MOV Day , DL
MOV Day_of_week , AL


MOV DH , 11
MOV DL , 52
CALL GotoXY

CMP Day_of_week , 0
JNE Day_Not_0
LEA DX, Sunday
JMP Day_Not_6
Day_Not_0:

CMP Day_of_week , 1
JNE Day_Not_1
LEA DX, Monday
JMP Day_Not_6
Day_Not_1:
CMP Day_of_week , 2
JNE Day_Not_2
LEA DX, Tuesday
JMP Day_Not_6
Day_Not_2:
CMP Day_of_week , 3
JNE Day_Not_3
LEA DX, Wednesday
JMP Day_Not_6
Day_Not_3:
CMP Day_of_week , 4
JNE Day_Not_4
LEA DX, Thursday
JMP Day_Not_6
Day_Not_4:
CMP Day_of_week , 5
JNE Day_Not_5
LEA DX, Friday
JMP Day_Not_6
Day_Not_5:
LEA DX, Saturday
Day_Not_6:

MOV AH , 09H
INT 21H



MOV AL , Day ; AX=Day
MOV AH , 0
MOV CL , 10
LEA BX , Print_Day
ADD BX , 1

YearG1:
DIV CL
ADD AH , 48
MOV [BX] , AH
MOV AH , 0
DEC BX
CMP AX , 0
JNE YearG1

MOV DH , 12
MOV DL , 52
CALL GotoXY

LEA DX, Print_Day
MOV AH, 09h
INT 21H


MOV DH , 13
MOV DL , 52
CALL GotoXY

CMP Month , 1
JNE Month_Not_1
LEA DX, January
JMP Month_Not_12
Month_Not_1:

CMP Month , 2
JNE Month_Not_2
LEA DX , February
JMP Month_Not_12
Month_Not_2:
CMP Month , 3
JNE Month_Not_3
LEA DX, March
JMP Month_Not_12
Month_Not_3:
CMP Month , 4
JNE Month_Not_4
LEA DX, April
JMP Month_Not_12
Month_Not_4:
CMP Month , 5
JNE Month_Not_5
LEA DX, May
JMP Month_Not_12
Month_Not_5:
CMP Month , 6
JNE Month_Not_6
LEA DX, June
JMP Month_Not_12
Month_Not_6:
CMP Month , 7
JNE Month_Not_7
LEA DX, July
JMP Month_Not_12
Month_Not_7:
CMP Month , 8
JNE Month_Not_8
LEA DX, August
JMP Month_Not_12
Month_Not_8:
CMP Month , 9
JNE Month_Not_9
LEA DX, September
JMP Month_Not_12
Month_Not_9:

CMP Month , 10
JNE Month_Not_10
LEA DX, October
JMP Month_Not_12
Month_Not_10:
CMP Month , 11
JNE Month_Not_11
LEA DX, November
JMP Month_Not_12
Month_Not_11:
LEA DX, December
Month_Not_12:
MOV AH , 09H
INT 21H


MOV AX , Year ; AX=Year
MOV CL , 10
LEA BX , Print_Year
ADD BX , 3

YearG10:
DIV CL
ADD AH , 48
MOV [BX] , AH
MOV AH , 0
DEC BX
CMP AX , 0
JNE YearG10
MOV DH , 14
MOV DL , 52
CALL GotoXY

LEA DX, Print_Year
MOV AH, 09h
INT 21H

RET
Print_System_Date ENDP
;*********** System-Date **************;
;---------------------------------------------------------------------------------
code ends
end start
 

پیوست ها

  • clock.rar
    2.8 کیلوبایت · بازدیدها: 0

kingofvishno

عضو جدید
سلام
من می خواستم با اسمبلی وقتی دو جای مختلف با ماوس کلیک می کنم بین اون دو تا نقطه یه خط بکشم.ممنون می شم اگر که کمکم کنید،خیلی واجب و فوریه
مرسی
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام
من می خواستم با اسمبلی وقتی دو جای مختلف با ماوس کلیک می کنم بین اون دو تا نقطه یه خط بکشم.ممنون می شم اگر که کمکم کنید،خیلی واجب و فوریه
مرسی
با سلام،
از سرویس های وقفه ی 33h (موس) استفاده کنید. باید در هر لحظه موقعیت دکمه ها رو بخونه و اگه کلیک کرد موقعیت رو ذخیره کنه. بعد از کلیک دوم خط رسم می شه!
 

FTM2

عضو جدید
سلام من یه کد اسمبلی ساده می خوام که با فایل کار کرده باشه اگه میشه یه کمکی کنید
من هیچی راجع به کار با فایل در اسمبلی بلد نیستم:(
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام من یه کد اسمبلی ساده می خوام که با فایل کار کرده باشه اگه میشه یه کمکی کنید
من هیچی راجع به کار با فایل در اسمبلی بلد نیستم:(
با سلام،
نام فایل رو به عنوان یه رشته تعریف کنید و آدرسش رو به عنوان ورودی (dx)به تابع 3dh بدید. همین طور نوع باز کردن رو هم در al بریزید تا بازش کنه! al=00or01or02 خروجی تابع handle رو ذخیره کنید.
برای خوندن از فایل هندل رو در bx تعداد بایت رو در cx آدرس محل ریختن بایت ها رو در dx قرار بدید و از تابع 3fhاستفاده کنید.
برای نوشتن در فایل هندل رو در bx تعداد بایت رو در cx آدرس محل خواندن بایت ها رو در dx قرار بدید و از تابع 40hاستفاده کنید.
برای بستن هم هندل رو در bx قراربدید و از 3eh استفاده کنید.
توابع از وقفه ی 21h هستند. به همین سادگی!!!
 

khorshid_sd

عضو جدید
سلام
نیاز فوری دارم به سورس توابع مثلثاتی به زبان اسمبلی
خواهش میکنم از نوع عاجزانه
اگه کسی بتونه کمکم کنه ممنون میشم
:cry:
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام
نیاز فوری دارم به سورس توابع مثلثاتی به زبان اسمبلی
خواهش میکنم از نوع عاجزانه
اگه کسی بتونه کمکم کنه ممنون میشم
:cry:
با سلام،
برای نوشتن کد توابع مثلثاتی باید یه سری زبربرنامه رو قبلش بنویسید:
محاسبات اعشاری، توان، فاکتوریل و تبدیل درجه به رادیان که به خصوص اولی خودش یه پروژه س!!
پس فکر نمی کنم کسی آماده ش رو داشته باشه!
 

khorshid_sd

عضو جدید
مرسی بابت توجهتون
یه سوال دیگه:
برای اینکه صفحه رو رنگی کنیم،من این دستورارو نوشتم:
MOV AH,09H
MOV BL,0B4H
INT 10H
ولی فقط بالای صفحه رنگی میشه.نمیدونم چطوری باید مختصات بدم.چیکار کنم؟؟؟؟؟؟؟؟؟؟؟:(
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
مرسی بابت توجهتون
یه سوال دیگه:
برای اینکه صفحه رو رنگی کنیم،من این دستورارو نوشتم:
MOV AH,09H
MOV BL,0B4H
INT 10H
ولی فقط بالای صفحه رنگی میشه.نمیدونم چطوری باید مختصات بدم.چیکار کنم؟؟؟؟؟؟؟؟؟؟؟:(
با سلام،
اگه می خواید صفحه با رنگ خاصی پاک بشه از سرویس 6h وقفه ی 10h استفاده کنید. توضیحاتش تو تاپیک آموزش هست!
 

proxima1212

عضو جدید
با سلام خدمت دوستان.
من یه مشکلی داشتم با برنامه ای که نوشتم البته برنامم خیلی سادست ولی اون جوابی که می خوام رو بهم نمیده.من می خواستم کاربرد ماکرو output رو امتحان کنم و این برنامه رو نوشتم:
include io.h
cr equ 0dh
lf equ 0ah
.MODEL
.STACK
data1 segment
x db 67
msg db "saeed",0
data1 ends
mycode segment
assume cs:mycode,ds:data1,ss:stack
start:
add x,10
output msg
quit:
mov al,0
mov ah,4ch
int 21h
mycode ends
end start
و من برناممو با dosbox اول masm.exe می کنم و بعد هم با Link.exe هم اون رو به علاوه ی io.obj لینک می کنم.ولی وقتی که exe رو اجرا می کنم فقط یه کاراکتر f مانند رو نشون می ده و اون پیغامی که توسط output فرستادم نشون نمیده
 

shincom_90

عضو جدید
با سلام
یه سوال داشتم اگه میشه فوری جواب بدن دوستان.با سپاس
برنامه ای بنویسید که تمام صفحه نمایش را با * پر کند؟
برنامه ای بنویسید که * های برنامه قبل را به رنگ آبی در زمینه ای به رنگ سفید نمایش دهد؟
فقطم دستورهای زیر را بلدم!!!!!!!!!!
MOV
LEA
LOOP
JUMP
CMP
PUSH POP
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
با سلام
یه سوال داشتم اگه میشه فوری جواب بدن دوستان.با سپاس
برنامه ای بنویسید که تمام صفحه نمایش را با * پر کند؟
برنامه ای بنویسید که * های برنامه قبل را به رنگ آبی در زمینه ای به رنگ سفید نمایش دهد؟
فقطم دستورهای زیر را بلدم!!!!!!!!!!
MOV
LEA
LOOP
JUMP
CMP
PUSH POP

با سلام،
این تاپیک مربوط به پرسش و پاسخه نه درخواست برنامه! هرچند برنامه ی آماده هم نوشته نمی شه!!
برنامه ی اول رو با فراخوانی پشت سر هم سرویس چاپ کاراکتر، سرویس 2 از وقفه ی 21h بنویسید.
برنامه ی دوم هم مثل برنامه ی اوله با این تفاوت که قبل از چاپ، باید با استفاده از سرویس 6 از وقفه ی 10h رنگ صفحه ی نمایش رو به صورت دلخواه دربیارید. برای توضیح بیشتر به تاپیک آموزش مراجعه کنید!
 

younesr

عضو جدید
درخواست کمک

درخواست کمک

سلام دوستان
طریقه گرفتن دو رشته را از ورودی و تبدیل ان به عدد را می خواستم اگه کسی بلده کمک کنه ممنون میشم
برنامه رو نوشتم اما یه مشکل داره وقتی میره تو loop دیگه در نمیاد
PHP:
datasg segment
    strlist label byte
    max db 30
    len db ?
    buffer db 30 dup (?)
    strlist1 label byte
    max1 db 30
    len1 db ?
    buffer1 db 30 dup (?)
    d db 10

datasg ends
codesg segment
    main proc far
        assume dsatasg;cs:codesg
        mov ax,datasg
        mov ds,ax
        lea dx,strlist
        mov ah,0ah
        int 21h
        lea dx,strlist1
        mov ah,0ah
        int 21h 
;tabdil reshte aval be adad
 
mov ch,0
lea bx,buffer
mov cl,len
dec cl
mov al,[bx]
sub al,48
l1: mul d
inc bx
sub [bx],48
add ax,[bx]
loop l1

;tabdil reshte dovom be adad 
mov ch,0
lea bx,buffer1
mov cl,len1
dec cl
mov al,[bx]
sub al,48
l2: mul d
inc bx
sub [bx],48
add ax,[bx]
loop l2
mov ah,4ch
int 21h
main endp
codesg ends 
end main
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام دوستان
طریقه گرفتن دو رشته را از ورودی و تبدیل ان به عدد را می خواستم اگه کسی بلده کمک کنه ممنون میشم
برنامه رو نوشتم اما یه مشکل داره وقتی میره تو loop دیگه در نمیاد
PHP:
datasg segment
    strlist label byte
    max db 30
    len db ?
    buffer db 30 dup (?)
    strlist1 label byte
    max1 db 30
    len1 db ?
    buffer1 db 30 dup (?)
    d db 10

datasg ends
codesg segment
    main proc far
        assume dsatasg;cs:codesg
        mov ax,datasg
        mov ds,ax
        lea dx,strlist
        mov ah,0ah
        int 21h
        lea dx,strlist1
        mov ah,0ah
        int 21h 
;tabdil reshte aval be adad
 
mov ch,0
lea bx,buffer
mov cl,len
dec cl
mov al,[bx]
sub al,48
l1: mul d
inc bx
sub [bx],48
add ax,[bx]
loop l1

;tabdil reshte dovom be adad 
mov ch,0
lea bx,buffer1
mov cl,len1
dec cl
mov al,[bx]
sub al,48
l2: mul d
inc bx
sub [bx],48
add ax,[bx]
loop l2
mov ah,4ch
int 21h
main endp
codesg ends 
end main
با سلام،
به تاپیک "برنامه های نوشته شده" برید! اون جا می تونید برنامه های آماده ای رو پیدا کنید که زیربرنامه ی تبدیل رو دارن!
 

yasi9970

عضو جدید
سلام
من 1 تمرین خیلی مهم دارم که باید تا 4 شنبه هفته دیگه تحویل بدم جواب این تمرین

یعنی نجات من از افتادن این درس
خواهش میکنم از کمک کردن به من چشم پوشی نکنید


تمرین:

برنامه ای بنویسیدکه یک رشته از اعداد را از ورودی دریافت و آن را به صورت عدد
ذخیره کند.

حداکثر طول رشته ورودی 4 کاراکتر
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام
من 1 تمرین خیلی مهم دارم که باید تا 4 شنبه هفته دیگه تحویل بدم جواب این تمرین

یعنی نجات من از افتادن این درس
خواهش میکنم از کمک کردن به من چشم پوشی نکنید


تمرین:

برنامه ای بنویسیدکه یک رشته از اعداد را از ورودی دریافت و آن را به صورت عدد
ذخیره کند.

حداکثر طول رشته ورودی 4 کاراکتر

با سلام،
جوابی که در پست قبل دادم شامل شما هم می شه!
 

yasi9970

عضو جدید
با سلام،
جوابی که در پست قبل دادم شامل شما هم می شه!
سلام من رفتم ولی برنامه ای که میخواستم نبودا و همین طور به جناب یونس هم پیغام فرستادم که اگه جواب سوالشو پیدا کرد برا منم ارسال کنه اما هنوز!!!!!!!!!!!!
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام من رفتم ولی برنامه ای که میخواستم نبودا و همین طور به جناب یونس هم پیغام فرستادم که اگه جواب سوالشو پیدا کرد برا منم ارسال کنه اما هنوز!!!!!!!!!!!!

با سلام،
گفته بودم دنبال برنامه ای باشید که فکر می کنید عدد از ورودی می گیره! مثلاً این برنامه در پست 26 همون تاپیک!
 

JNBBI69

عضو جدید
سلام کمک فوری نیازمندم لطفا کمک کنید :
برنامه ای به زبان اسمبلی که nحرف را بگیرد وتعداد تکرار هرکدام را درخروجی چاپ کند ...
تو رو خدا یه دستی برسونید حیاتیه اگه ندم میافتم .:wallbash::cry::wallbash::cry: :child::child::child::child::child::child::child::child::child::child::child::child::child::child::child::child:
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سلام کمک فوری نیازمندم لطفا کمک کنید :
برنامه ای به زبان اسمبلی که nحرف را بگیرد وتعداد تکرار هرکدام را درخروجی چاپ کند ...
تو رو خدا یه دستی برسونید حیاتیه اگه ندم میافتم .:wallbash::cry::wallbash::cry: :child::child::child::child::child::child::child::child::child::child::child::child::child::child::child::child:

با سلام،
به نظرتون تکرار پست تو همه ی تاپیک ها کمکی می کنه؟؟ فکر کنم هرقدر هم که تکرار کنم که در جای نامربوط پست ارسال نشه بازم بی فایده باشه!!
زبان اسمبلی مثل سایر زبان ها امکان اختصاص حافظه ی پویا رو نداره پس لازمه که n مشخص باشه!
لازمه که یه متغیر از نوع Label تعریف کنید که رشته ای به طول n که مشخص شده رو می گیره، جزئیات در تاپیک آموزش!
بعد باید کار شمارش تک تک کاراکترها رو انجام بدید! برای سادگی کار، اول یه کاراکتر انتخاب کنید که امکان ورودش در رشته وجود نداره، چیزی مثل §! بعد، از ابتدای رشته شروع می کنید و اولین کاراکتر مخالف کاراکتر گفته شده رو بر می دارید، در یه حلقه تعداد رو می شمارید و بعد از هر شمارش کاراکتر رو با کاراکتر انتخابی جایگزین می کنید، حالا مقدار رو چاپ می کنید و حلقه ادامه پیدا می کنه تا زمانی که همه ی رشته از کاراکتر انتخابی پر بشه!
برای چاپ عدد هم از برنامه های موجود در تاپیک برنامه های نوشته شده استفاده کنید که زیربرنامه ی چاپ اعداد رو دارند!
مثال:
aacccvvvvvbbbbbffffdddddd
§§cccvvvvvbbbbbffffdddddd-a=2
§§§§§vvvvvbbbbbffffdddddd-c=3
و...
 

khaledd

عضو جدید
سلام..چندتا سوال دارم جواب فوری فوری میخوام جوابش واسم ضروریه مرسی....

1.با استفاده از روتینهای bios به زبان اسمبلی برنامه ای بنویسید که:
الف:مکان نمای موس به یک کاراکتر خاص یا شکل خاص نمایش داده شود
ب:به طوری که رنگ اشاره گر و زمینه ان متفاوت باشد
ج:هنگام استقرار در نقطه ی جاری نمایشگر اشاره گر برنگ نقطه جاری تبدیل شود

2.با استفاده از روتین های bios برنامه ای بنویسیدبه طوریکه وضعیت چاپگر متصل به پورت موازی را گزارش دهد.هم چنین امکان یک فایل متنی و انتقال ان روی چاپگر امکان پذیر باشد

3.برنامه ای با استفاده از روتینهای bios بنویسید بطوری که با دسترسی مستقیم به حافظه امکان مدیریت 2پنجره بر روی صفحه نمایش ایجاد کند

4.عملکرد یک ویروس را تحلیل کرده و برنامه ای بنویسید که قابلیت اسکن کردن یک فایل را داشته باشد و پس از یافتن علایم ویروس فایل را پاکسازی کند..
 

kmar

عضو جدید
سالان دوستان من یه برنامه میخوام که یه رشته از ورودی بگیره و معکوسشو چاپ کنه خیلی مهمه واسم
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
سالان دوستان من یه برنامه میخوام که یه رشته از ورودی بگیره و معکوسشو چاپ کنه خیلی مهمه واسم

با سلام،
طریقه ی دریافت رشته از ورودی رو می تونید تو تاپیک آموزش پیدا کنید. برای چاپ از انتها هم به یه حلقه نیاز دارید که از انتهای بافر رشته کاراکتر به کاراکتر بخونه و چاپ کنه! به همین سادگی!
 

JNBBI69

عضو جدید
حالا اگه این کاراکتر ها به صورت پراکنده باشند چی؟ مثلا aa bbb cc aa dd bb
مرسی
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
حالا اگه این کاراکتر ها به صورت پراکنده باشند چی؟ مثلا aa bbb cc aa dd bb
مرسی
چه فرقی می کنه؟ در این صورت کاراکتر فاصله رو هم می شمارید یا حذفش می کنید با همون روند قبلی!
 

JNBBI69

عضو جدید
ببخشید حالا اگه بخواهیم بدون استفاده از رشته بنویسیم چطور؟
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
ببخشید حالا اگه بخواهیم بدون استفاده از رشته بنویسیم چطور؟
می تونید کاراکتر به کاراکتر با سرویس دریافت کلید از صفحه کلید بخونید اما لازمه به تعداد همه ی حروف و اعداد و علامت ها و هرچی که ممکنه وارد بشه، شمارنده در نظر بگیرید.
 

Similar threads

بالا