PDA

View Full Version : چاپ مورب رشته



Reza,M
چهارشنبه 14 اردیبهشت 1390, 17:32 عصر
با سلام اگه بخوام رشته رو مورب چاپ كنم به چه صورت بايد عمل كرد ؟
مثلا Rez



z
e
R

tdkhakpur
چهارشنبه 14 اردیبهشت 1390, 20:49 عصر
برای این کار :
1 - کدی رو که یک کاراکتر رو چاپ میکنه رو بنویسید
2 - کدی رو که اشاره گر رو به محل x , y میبره بنویسید.
3- با استفاده از کدهای بالا رشته رو از اول تا آخر بخون و در محل xو y با تغییر در x و y بنویسید.(البته این قسمت باید بررسی بشه تا در محل درست عمل چاپ انجام بگیره)

Reza,M
پنج شنبه 15 اردیبهشت 1390, 10:12 صبح
من اين كد رو نوشتم اما از بالا به پايين چاپ ميكنه ولي من ميخوام از پايين به بالا و بصورت مور چاپ كنه !



; multi-segment executable file template.
data segment
n db "Enter your Name : $"
n1 db 20
n2 db ?
n3 db 21 dup(?)
i db ?
k dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
lea dx,n
mov ah,09h
int 21h
lea dx,n1
mov ah,0ah
int 21h
mov i,1
l1: mov al,n2
mov ah,0
cmp k,ax
jnl l2
mov dl,i
mov dh,i
mov bh,0
mov ah,02h
int 10h
lea dx,n3
add dx,k
mov cx,1
mov bx,1
mov ah,40h
int 21h
inc k
inc i
jmp l1
l2:
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
end start ; set entry point and stop the assembler.

tdkhakpur
جمعه 16 اردیبهشت 1390, 03:00 صبح
datas segment
n db "Enter your Name : $"
n1 db 20
n2 db ?
n3 db 21 dup(?)
i db ?
k db ?
x db 40
y db 5
datas ends
stacks segment
dw 128 dup(0)
stacks ends
codes segment
begin:
assume ss:stacks, ds:datas, cs:codes
; set segment registers:
mov ax, datas
mov ds, ax
mov es, ax
;----------------------------------------
lea dx,n
mov ah,09h
int 21h
lea dx,n1
mov ah,0ah
int 21h
mov i,0
mov al, n2
mov k, al
l1:
mov dl,i
mov dh,k
mov bh,0
add dl, x
add dh, y
mov ah,02h
int 10h
lea dx,n3
xor ax,ax
mov al,i
add dx,ax
mov cx,1
mov bx,1
mov ah,40h
int 21h
dec k
inc i
cmp k, 0
jne l1
;----------------------------------------
mov ax, 4c00h ; exit to operating system.
int 21h
codes ends
end begin ; set entry point and stop the assembler.

zahra2525
شنبه 05 خرداد 1397, 22:56 عصر
من اين كد رو نوشتم اما از بالا به پايين چاپ ميكنه ولي من ميخوام از پايين به بالا و بصورت مور چاپ كنه !



; multi-segment executable file template.
data segment
n db "Enter your Name : $"
n1 db 20
n2 db ?
n3 db 21 dup(?)
i db ?
k dw ?
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
lea dx,n
mov ah,09h
int 21h
lea dx,n1
mov ah,0ah
int 21h
mov i,1
l1: mov al,n2
mov ah,0
cmp k,ax
jnl l2
mov dl,i
mov dh,i
mov bh,0
mov ah,02h
int 10h
lea dx,n3
add dx,k
mov cx,1
mov bx,1
mov ah,40h
int 21h
inc k
inc i
jmp l1
l2:
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
end start ; set entry point and stop the assembler.




سلام میشه خطوط کدهای بالا رو توضیح بدید؟

masoud.8086
یک شنبه 06 خرداد 1397, 12:37 عصر
با سلام
اصلا نیازی به پیچوندن سوال نیس
ابتدا با وقفه int 21h/ah,02 بیاین ی حروفو در مختصات مورد نظر چاپ کنید با استفاده از وفغه int 10h/ah,02 و بعد مقدار ستون رو یکی و مقدار سطر رو هم یکی اضافه کنید تکه کد اصلی برنامه رو پایین براتون مینویسم موفق باشید
i db 10
j db 20
'str db 'a','b','c
//////////////
mov si,0
mov cx,3
:k

mov ah,02
mov ,dh,i
mov dl,j
int 10h

mov ah,02
[mov dl,str[si
int 21h
inc si
inc i
inc j
loop k