با سلام اگه بخوام رشته رو مورب چاپ كنم به چه صورت بايد عمل كرد ؟
مثلا Rez
z
e
R
با سلام اگه بخوام رشته رو مورب چاپ كنم به چه صورت بايد عمل كرد ؟
مثلا Rez
z
e
R
برای این کار :
1 - کدی رو که یک کاراکتر رو چاپ میکنه رو بنویسید
2 - کدی رو که اشاره گر رو به محل x , y میبره بنویسید.
3- با استفاده از کدهای بالا رشته رو از اول تا آخر بخون و در محل xو y با تغییر در x و y بنویسید.(البته این قسمت باید بررسی بشه تا در محل درست عمل چاپ انجام بگیره)
من اين كد رو نوشتم اما از بالا به پايين چاپ ميكنه ولي من ميخوام از پايين به بالا و بصورت مور چاپ كنه !
; 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.
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.
با سلام
اصلا نیازی به پیچوندن سوال نیس
ابتدا با وقفه 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