رتبه موضوع:
  • 26 رای - 2.69 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Windows Console Print
#1
نقل قول:Instructions: Uses the stdcall calling convention so you can call from C by declaring as 'extern _stdcall _consoleOutput(char *);'. In assembly push a pointer to a zero terminated message and call. No need to clean up the stack afterward.

کد:
.model small

.data
str1 db 10h dup(0)                ; will save filename in this
buff db 1h dup(0)                   ; buffer to save data
str2 db 10,13,'File Not Found $'         ; will print this in case file not found

.code
mov ax,@data
mov ds,ax

mov ah,62h                    ; reading psp contents
int 21h

mov es,bx

mov si,0080h                    ; 80h contains the lenght of command tail
mov al,es:[si]
mov cl,al
dec cl

mov si,0082h                    ; 82h starts the text of command tail
lea di,str1                    ; saving it in str1, in this case the filename
read:
mov al,es:[si]
mov [di],al
inc si
inc di
loop read

mov ah,3dh                    ; opening the file using 3dh of int 21h
lea dx,str1                    ; dx contain the filename in ASCIIZ format, i.e 0's at the end
int 21h
jnc mylabel                    ; there is carry generated if any error    

mov ah,09h                    ; printing str2 on error else skip
lea dx,str2
int 21h

mylabel:
mov bx,ax                    ; file handle of the open file is stored in AX, need to move it in BX to read the open the file with handle AX, better store AX somewhere
label1:
mov ah,3fh
mov cx,0001h
lea dx,buff                    ; reading data in buff of size 1
int 21h
cmp ax,0000h                    ; printing till ax=0000h, i.e end-of-file
jz end1                        ; will break and jump to end1 label on end of file

mov cx,0001h
lea si,buff                    ; printing data in buff
label2:
mov dl,[si]
mov ah,02h                    ; interrupt on print on screen
int 21h
inc si
loop label2
jmp label1

end1:
mov ah,4ch                    ; normal end of any assembly program
int 21h
end

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





ای ام شاپ را در اینستگرام دنبال کنید

ای ام شاپ رو در کانال تلگرام دنبال کنید



This forum uses Lukasz Tkacz MyBB addons.
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان
<------> <____> <<<<----------------->>>> <<<<--->>>>>
This forum uses Lukasz Tkacz MyBB addons.