วันอังคารที่ 20 สิงหาคม พ.ศ. 2556
LODSB
stseg segment para stack
db 64 dup('A');
sttop label word
stseg ends
dtseg segment
str1 db 'Hello,World',0dh,0ah,'$'
str2 db 'Hello,World',0dh,0ah,'$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov es,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;-------------------------------------------------------------------
lea si,str1
lodsb
mov dl,al
mov ah,02
int 21h
;-------------------------------------------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
repne scasb ค้นหาตัวอักษร
stseg segment para stack
db 64 dup('A');
sttop label word
stseg ends
dtseg segment
str1 db 'Hello,World',0dh,0ah,'$'
str2 db 'Hello,World2',0dh,0ah,'$'
mess1 db 'Found',0dh,0ah,'$'
mess2 db 'Not Found',0dh,0ah,'$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov es,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;-------------------------------------------------------------------
lea di,str1
mov al,'r'
cld
mov cx,14
repne scasb
je found
notfound:
lea dx,mess2
mov ah,9
int 21h
jmp done
found:
lea dx,mess1
mov ah,9
int 21h
jmp done
done:
;-------------------------------------------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
20/08/2013 เปรียบเทียบ สตริง
stseg segment para stack
db 64 dup('A');
sttop label word
stseg ends
dtseg segment
str1 db 'Hello,World',0dh,0ah,'$'
str2 db 'Hello,World',0dh,0ah,'$'
mess1 db 'Str1 is match Str2',0dh,0ah,'$'
mess2 db 'Str1 does not match Str2',0dh,0ah,'$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov es,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;-------------------------------------------------------------------
lea si,str1
lea di,str2
cld
mov cx,14
repe cmpsb
je match
nomatch:
lea dx,mess2
mov ah,9
int 21h
jmp done
match:
lea dx,mess1
mov ah,9
int 21h
jmp done
done:
;-------------------------------------------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
20/08/2013
stseg segment para stack
db 64 dup('A');
sttop label word
stseg ends
dtseg segment
str1 db 'Hello,World',0dh,0ah,'$'
str2 db 15 dup (' ')
mess db 'str2 = $'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov es,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;-------------------------------------------------------------------
lea si,str1
lea di,str2
cld
mov cx,14
rep movsb
lea dx,mess
mov ah,9
int 21h
lea dx,str2
mov ah,9
int 21h
;-------------------------------------------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
วันอังคารที่ 13 สิงหาคม พ.ศ. 2556
Assembly : String
stseg segment para stack
db 64 dup('0');
sttop label word
stseg ends
dtseg segment
max db 100
count db 0
sentence db 100 dup (' ')
mess db 'Input String =>$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;----------------------------------
mov ah,9h
lea dx, mess
int 21h
mov ah,0ah
lea dx, max
int 21h
;----------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
db 64 dup('0');
sttop label word
stseg ends
dtseg segment
max db 100
count db 0
sentence db 100 dup (' ')
mess db 'Input String =>$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;----------------------------------
mov ah,9h
lea dx, mess
int 21h
mov ah,0ah
lea dx, max
int 21h
;----------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
วันอังคารที่ 6 สิงหาคม พ.ศ. 2556
Assembly IF-ELSE
stseg segment para stack
db 64 dup('0');
sttop label word
stseg ends
dtseg segment
mess1 db 'AX > BX',0dh,0ah,'$'
mess2 db 'AX <= BX',0dh,0ah,'$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;----------------------------------
mov ax,80
mov bx,80
cmp ax,bx
jle ELSE_IF
lea dx,mess1 ;AX > BX
mov ah,9
int 21h
JMP END_IF
ELSE_IF:
lea dx,mess2 ;AX < BX
mov ah,9
int 21h
END_IF:
;----------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
db 64 dup('0');
sttop label word
stseg ends
dtseg segment
mess1 db 'AX > BX',0dh,0ah,'$'
mess2 db 'AX <= BX',0dh,0ah,'$'
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;----------------------------------
mov ax,80
mov bx,80
cmp ax,bx
jle ELSE_IF
lea dx,mess1 ;AX > BX
mov ah,9
int 21h
JMP END_IF
ELSE_IF:
lea dx,mess2 ;AX < BX
mov ah,9
int 21h
END_IF:
;----------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
Assembly CMP
stseg segment para stack
db 64 dup('0');
sttop label word
stseg ends
dtseg segment
mess1 db 'AX > BX',0dh,0ah,'$' ;odh,oah = \n new line in c
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;----------------------------------
mov ax,30
mov bx,20
cmp ax,bx ; if ax > bx print 'ax>bx'
jnl PRINT
PRINT:
lea dx,mess1 ;dx -> mess1
mov ah,9
int 21h
;----------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
db 64 dup('0');
sttop label word
stseg ends
dtseg segment
mess1 db 'AX > BX',0dh,0ah,'$' ;odh,oah = \n new line in c
dtseg ends
cdseg segment
main proc far
assume cs:cdseg,es:dtseg,ds:dtseg,ss:stseg
mov ax,dtseg
mov ds,ax
mov ax,stseg
mov ss,ax
lea sp,sttop
;----------------------------------
mov ax,30
mov bx,20
cmp ax,bx ; if ax > bx print 'ax>bx'
jnl PRINT
PRINT:
lea dx,mess1 ;dx -> mess1
mov ah,9
int 21h
;----------------------------------
mov ah,4ch
int 21h
main endp
cdseg ends
end main
สมัครสมาชิก:
ความคิดเห็น (Atom)