,  , Assembler, MASM, TASM

 
 
 
:  :  - 43,   - 4.77
Dasha_K
3 / 3 / 1
: 21.12.2009
: 81
#1

_ * - Assembler

22.11.2011, 21:29. 6858. 27
( )

, !
, - ? masm32 . ?
:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
.386
.model small
ORG 100H 
CODE SEGMENT 
;ASSUME CS:CODE, DS:CODE, SS:CODE, ES:CODE 
START: 
;  
MOV AX, 0600H     ;AH=06H -  , AL=00 -    
MOV BH, 07     ;-  
MOV CX, 0000     ;   
MOV DX, 184FH     ;   
INT 10H     ;  BIOS 
 
;    00 
MOV AH, 02     ;    
MOV BH, 00     ;  
MOV DX, 0000     ;  
INT 10H     ;  BIOS 
 
;    
MOV AH, 09     ;   
MOV DX, OFFSET MSG1     ;  
INT 21H     ;  
 
; ,    
MOV AH, 3FH     ;  
MOV BX, 00     ;   
MOV CX, 254     ;    
MOV DX, OFFSET INBUF     ;     DX 
INT 21H     ;  
SUB AX, 02     ;     ""  " " 
 
;     
MOV SI, OFFSET INBUF     ;  sI ( )     
MOV CX, AX     ;  CX    
L1: 
MOV BL, [SI]     ; BL    
CMP BL, 64     ;  64 65=A 
JBE VYHOD     ;      
CMP BL, 90     ;  90 90=Z 
JA STROKI     ;     
ADD BL, 32     ;     
MOV [SI], BL     ;   
JMP VYHOD     ; 
STROKI: 
CMP BL, 97     ;  97 97=a 
JB VYHOD     ;   
CMP BL, 122     ;  122 122=z 
JA VYHOD     ;   
MOV [SI], BL     ;   
VYHOD: 
INC SI     ;    
LOOP L1 
MOV BL, BYTE PTR '$' 
MOV [SI], BL     ;   $ 
 
;   
MOV AH, 09 
MOV DX, OFFSET MSG2 
INT 21H 
MOV DX, OFFSET INBUF 
INT 21H 
 
INT 20H     ;  
MSG1 DB 'ENTER STRING OF SYMBOLS:','$' 
 
MSG2 DB 'CONVERT STRING:','$' 
 
INBUF DB 256 DUP (' ') 
 
END  Code;
End Start
_ * :

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.data
X byte "JOAN"       ; 
.386
.model flat, stdcall
 
option casemap: none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
include \masm32\include\debug.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\debug.lib
 
.data
X byte "JOAN"       ; 
.code
start:
CLD             ;   DF (  )
MOV  ECX,Sizeof X   ;  
LEA  EDI,X      ;  
mov AL,"A"      ;  
REPNE SCASB     ; 
JNZ EX          ;     
dec EDI         ;  -    
mov al,"H"      ;   
STOSB           ; 
DbgDump offset X,4  ;     
EX:
INVOKE ExitProcess,0
END start

.....
http://www.cyberforum.ru/assembler/thread301188.html
0
? .
Similar
41792 / 34177 / 6122
: 12.04.2006
: 57,940
22.11.2011, 21:29
_ * (Assembler):


: , ...


, ...

, .
: ,...


, ...


N . ,...

27
Charles Kludge
7641 / 3156 / 382
: 03.05.2011
: 8,382
27.11.2011, 11:30 #21
. 32- PE-EXE(win32console) 16- /.
16-, ( MASM )
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
format PE console 4.0
 
include 'include\win32ax.inc'
ENABLE_PROCESSED_OUTPUT  = 00000001
 
        invoke  GetStdHandle, STD_INPUT_HANDLE
        push    eax
        push    eax
        invoke  GetStdHandle, STD_OUTPUT_HANDLE
        push    eax
        invoke  SetConsoleMode, eax, ENABLE_PROCESSED_OUTPUT
        pop     eax
        invoke  WriteConsole, eax, hello, msgsz, cnt, NULL
        invoke  FlushConsoleInputBuffer
        pop     eax
        invoke  ReadConsole, eax, buf, bufsz, cnt, NULL
;      
;exit:
        invoke  ExitProcess,0
 
hello   db      'Enter string',0
msgsz   =       $ - hello
cnt     dd      ?
buf     db      256 dup(?)
bufsz   =       $ - buf
; import data in the same section
 
data import
 
 library kernel32,'KERNEL32.DLL'
 
 import kernel32,\
        ExitProcess,'ExitProcess',\
        GetStdHandle,'GetStdHandle',\
        SetConsoleMode,'SetConsoleMode',\
        ReadConsole,'ReadFile',\
        WriteConsole,'WriteConsoleA',\
        FlushConsoleInputBuffer,'FlushConsoleInputBuffer'
end data
1
Dasha_K
3 / 3 / 1
: 21.12.2009
: 81
27.11.2011, 11:38  [] #22
, , , .exe . ??????
.386
.model flat, stdcall
option casemap: none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
;CODE SEGMENT
;ASSUME CS:CODE, DS:CODE, SS:CODE, ES:CODE
.code
Start:
;
MOV EAX, 0600H ;AH=06H - , AL=00 -
MOV EBX, 07 ;-
MOV ECX, 0000 ;
MOV EDX, 184FH ;
INT 10H ; BIOS

; 00
MOV AX, 02 ;
MOV EBX, 00 ;
MOV EDX, 0000 ;
INT 10H ; BIOS

;
MOV AX, 09 ;
MOV EDX, OFFSET MSG1 ;
INT 21H ;

; ,
MOV AX, 3FH ;
MOV EBX, 00 ;
MOV CX, 254 ;
MOV EDX, OFFSET INBUF ; DX
INT 21H ;
SUB AX, 02 ; "" " "

;
MOV ESI, OFFSET INBUF ; sI ( )
MOV CX, AX ; CX
L1:
MOV EBX, [ESI] ; BL
CMP EBX, 64 ; 64 65=A
JBE VYHOD ;
CMP EBX, 90 ; 90 90=Z
JA STROKI ;
ADD EBX, 32 ;
MOV [ESI], EBX ;
JMP VYHOD ;
STROKI:
CMP EBX, 97 ; 97 97=a
JB VYHOD ;
CMP EBX, 122 ; 122 122=z
JA VYHOD ;
MOV [ESI], EBX ;
VYHOD:
INC SI ;
LOOP L1
MOV EBX, BYTE PTR '$'
MOV [ESI], EBX ; $

;
MOV AH, 09
MOV EDX, OFFSET MSG2
INT 21H
MOV EDX, OFFSET INBUF
INT 21H

INT 20H ;
MSG1 DB 'ENTER STRING OF SYMBOLS:','$'

MSG2 DB 'CONVERT STRING:','$'

INBUF DB 256 DUP (' ')

;END Code;
End Start
0
Charles Kludge
7641 / 3156 / 382
: 03.05.2011
: 8,382
27.11.2011, 12:17 #23
Dasha_K, , :
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
format PE console 4.0
 
include 'd:\FASM\include\win32ax.inc'
ENABLE_PROCESSED_OUTPUT  = 00000001
 
        invoke  GetStdHandle, STD_INPUT_HANDLE
        mov [sin],eax
        invoke  GetStdHandle, STD_OUTPUT_HANDLE
        mov [sout],eax
        invoke  SetConsoleMode, [sout], ENABLE_PROCESSED_OUTPUT
        invoke  WriteConsole, [sout], hello, msgsz, cnt, NULL
        invoke  FlushConsoleInputBuffer
        invoke  ReadConsole, [sin], buf, bufsz, cnt, NULL
 
;  
        xor     ebx,ebx ;bx -     
        mov     ecx, [cnt] ; ecx -     
loopLabel:
        mov     al, byte [buf+ebx]
        cmp     al,'A' ;     
        jb  next
        cmp     al,'z'
        jg  next
        cmp     al,'Z'
        jbe     convert
        cmp     al,'a'
        jb  next ;  ,      
convert: xor    al, 20h  ; 
 
next:   mov     byte [outbuf+ebx],al ;   
    inc     bx
    loop    loopLabel
        invoke  WriteConsole, [sout], outbuf, [cnt], cnt, NULL
        invoke  ReadConsole, [sin], buf, 1, cnt, NULL
 
 
;exit:
        invoke  ExitProcess,0
sout    dd  ? ; STD_OUTPUT_HANDLE
sin dd  ? ; STD_INPUT_HANDLE
hello   db      'Enter string:',0
msgsz   =       $ - hello
cnt     dd      ?
buf     db      256 dup(?)
bufsz   =       $ - buf
outbuf  db  256 dup(?)
; import data in the same section
 
data import
 
 library kernel32,'KERNEL32.DLL'
 
 import kernel32,\
        ExitProcess,'ExitProcess',\
        SetConsoleCP,'SetConsoleCP',\
        SetConsoleOutputCP,'SetConsoleOutputCP',\
        GetStdHandle,'GetStdHandle',\
        SetConsoleMode,'SetConsoleMode',\
        ReadConsole,'ReadFile',\
        WriteConsole,'WriteConsoleA',\
        FreeConsole,'FreeConsole',\
        FlushConsoleInputBuffer,'FlushConsoleInputBuffer',\
        AllocConsole,'AllocConsole'
end data
- .
1
 : zip cons.zip (611 , 8 )
Dasha_K
3 / 3 / 1
: 21.12.2009
: 81
27.11.2011, 12:30  [] #24
? .... masm?
0
Charles Kludge
7641 / 3156 / 382
: 03.05.2011
: 8,382
27.11.2011, 12:52 #25
.
FASM. "".
FASM
(IDE) (.)
OllyDbg
Help (.)
1
Dasha_K
3 / 3 / 1
: 21.12.2009
: 81
27.11.2011, 18:45  [] #26
Charles Kludge, , , , , db .
0
Charles Kludge
7641 / 3156 / 382
: 03.05.2011
: 8,382
27.11.2011, 19:23 #27
Dasha_K, ... . ?
[FASM]:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
format MZ
    heap    0
    stack   8000h
    entry   main:start
segment main    use16
start:  mov ax,data_segment
    mov ds,ax
    mov es,ax
    mov dx, MSG1
    mov ah, 09h
    int 21h
; read string
    mov ah, 0Ah
    mov dx, inpbuf
    int 21h
; prepare for convert
    mov si, dx
    lodsw
    mov di, si
    shr ax, 8
    mov cx, ax
    inc cx
; cx - str length, DS:SI = ES:DI -> string buf
_loop:  lodsb
    cmp al, 20h ; is <space>?
    jne l1
    mov al, 5Fh ; yeah, underscore "_"
l1: cmp al, 30h ; isdigit? "0" ?
    jb  l2
    cmp al, 39h ;  "9" ?
    ja  l2
    mov al, 2Ah ; asterisk "*"
l2: stosb   
    loop    _loop
    mov al, 24h ; '$'
    stosb
    mov bx, dx
    mov word [bx], 0A0Dh    ; cr/lf
    mov dx, MSG2
    mov ah, 09h
    int     21h
    mov dx, bx
    int 21h
    dec ah
    int 21h
    mov ah, 4Ch
    int 21h
 
segment data_segment
MSG1 DB 'ENTER STRING OF SYMBOLS:','$' 
 
MSG2 DB 'CONVERT STRING:','$' 
 
inpbuf: db  050h, 0, 80 dup (?)
1
Dasha_K
3 / 3 / 1
: 21.12.2009
: 81
27.11.2011, 19:40  [] #28
.

2
fasme , ..........
0
27.11.2011, 19:40
MoreAnswers
37091 / 29110 / 5898
: 17.06.2006
: 43,301
27.11.2011, 19:40
! :


, , . zwx ...

. "!", "-",
. ( Delphi 7.0),...


: , , ...

:
: , ...




:
28

- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
@Mail.ru