教案中的例题的代码.docx
《教案中的例题的代码.docx》由会员分享,可在线阅读,更多相关《教案中的例题的代码.docx(38页珍藏版)》请在冰豆网上搜索。
![教案中的例题的代码.docx](https://file1.bdocx.com/fileroot1/2023-1/2/8cd0cb65-e0f5-46e2-8466-8a409efbf663/8cd0cb65-e0f5-46e2-8466-8a409efbf6631.gif)
教案中的例题的代码
=====0_0.asm=====
datasegment
dataends
codesegment
assumeCS:
code,DS:
data
mainprocfar
MOVAX,data
MOVDS,AX
;......
MOVAH,4CH
INT21H
mainendp
codeends
endmain
=====0_1.asm=====
datasegment
;......
dataends
extrasegment
;......
extraends
stacksegment
DB1024DUP(0FFH)
stackends
codesegment
assumeCS:
code,DS:
data,ES:
extra,SS:
stack
start:
MOVAX,data
MOVDS,AX
MOVAX,extre
MOVES,AX
MOVAX,stack
MOVES,AX
;......
MOVAH,4CH
INT21H
codeends
endstart
=====0_2.asm=====
datasegment
;......
dataends
stacksegment
DB1024DUP(0FFH)
stackends
codesegment
assumeCS:
code,DS:
data,SS:
stack
start:
MOVAX,data
MOVDS,AX
MOVAX,stack
MOVES,AX
;......
MOVAH,4CH
INT21H
codeends
endstart
=====3_1.asm=====
datasegment
arrDW01h,02h,03h,04h
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVCX,0004H
MOVAX,0000H;clearzero
LEABX,arr
;MOVBX,OFFSETarr
loop1:
ADDAX,[BX]
ADDBX,2
DECCX
JNZloop1
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_2.asm=====
datasegment
arr1DW01h,02h,03h,04h
dataends
extrasegment
arr2DW11h,12h,13h,14h,15h
extraends
codesegment
assumeCS:
code,DS:
data,ES:
extra
start:
MOVAX,data
MOVDS,AX
MOVAX,extra
MOVES,AX
MOVCX,0004H
MOVAX,0000H;clearzero
LEABX,arr1
loop1:
ADDAX,[BX]
ADDBX,2
DECCX
JNZloop1
MOVCX,0004H
MOVAX,0000H;clearzero
MOVBX,OFFSETarr2
loop2:
ADDAX,ES:
[BX]
ADDBX,2
DECCX
JNZloop2
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_3.asm=====
datasegment
var1DW12H
var2DW1AH
var3DW?
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVAX,var1
ADDAX,var2
MOVvar3,AX
MOVAH,4CH
INT21H
codeends
endstart
=====3_4.asm=====
datasegment
DW10DUP(?
)
arrDW01h,02h,03h,04h,05H
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVCX,0005H
MOVAX,0000H;clearzero
MOVBX,0
loop1:
ADDAX,arr[BX]
ADDBX,2
DECCX
JNZloop1
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_5.asm=====
datasegment
DW10DUP(?
)
stuDW123aH
DW45H
DB'w'
DB23H
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVBX,OFFSETstu
MOVAX,[BX+0]
MOVDX,[BX+2]
MOVCL,[BX+4]
MOVCH,[BX+5]
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_6.asm=====
datasegment
DW10DUP(?
)
stuDW123aH
DW45H
DB'w'
DB23H
DW123aH
DW45H
DB'w'
DB23H
DW123aH
DW45H
DB'w'
DB23H
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
loop1:
MOVCX,3
MOVBX,OFFSETstu
MOVAX,[BX+0]
MOVDX,[BX+2]
MOVAL,[BX+4]
MOVAH,[BX+5]
ADDBX,6
DECCX
JNZloop1
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_7.asm=====
datasegment
arrDW01h,02h,03h,04h,05H,06h
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVAX,0
MOVCh,03H
loop1:
MOVCL,02H
MOVSI,0H
loop2:
ADDAX,[BX+SI]
ADDSI,2
DECCL
JNZloop2
ADDBX,4
DECCH
JNZloop1
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_8.asm=====
datasegment
arrDW01h,02h,03h,04h,05H,06h
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVAX,0
MOVCX,0006H
MOVBX,offsetarr
MOVSI,0H
loop1:
ADDAX,[BX][SI]
ADDSI,2
DECCX
JNZloop1
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_9.asm=====
datasegment
struDW03H
DB02H
DW01h,02h,03h,04h,05H
DW09H
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVAX,0
MOVCX,0005H
MOVBX,offsetstru
MOVSI,0H
loop1:
ADDAX,[BX+3+SI]
ADDSI,2
DECCX
JNZloop1
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_10.asm=====
datasegment
struDW03H
DB02H
DW01h,02h,03h,04h,05H
DW09H
DW03H
DB02H
DW01h,02h,03h,04h,05H
DW09H
DW03H
DB02H
DW01h,02h,03h,04h,05H
DW09H
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
loop2:
MOVCL,03H
MOVAX,0
MOVCH,05H
MOVBX,offsetstru
MOVSI,0H
loop1:
ADDAX,[BX+3+SI]
ADDSI,2
DECCH
JNZloop1
DECCL
JNZloop2
MOVAH,4CH;exit
INT21H
codeends
endstart
=====3_11.asm=====
datasegment
count1EQU5
count2EQU11H
count3EQU10110011B
var1DW16
ch1DB'A'
var2DD12345678H
var3DQ12345678ABCDEF09H
arr1DW01h,02h,03h,04h
arr2DBcount1DUP(3H,2H,2DUP(?
))
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVBX,OFFSETarr2
MOVSI,OFFSETch1+1
MOVAX,[var1]
MOVAX,var1
;MOVAX,var2
MOVAX,WORDPTRvar2
MOVvar1,count1
MOVBYTEPTR[0000],count1
MOVAX,count1
MOVAH,count1
MOVAL,count2
MOVAH,count3
MOVBX,0
MOVSI,0
MOVAX,arr1[BX][SI]
MOVAH,4CH
INT21H
codeends
endstart
=====3_12.asm=====
datasegment
arr2DW12H,13H,14H,15H,16H,17H,18H,19H
dataends
stacksegmentstack
DB1024DUP(0FFH)
stackends
codesegment
assumeCS:
code,DS:
data,SS:
stack
start:
MOVAX,data
MOVDS,AX
MOVAX,stack
MOVSS,AX
MOVBX,OFFSETarr2
MOVCX,04H
loop1:
MOVAX,0
PUSHCX
MOVCX,02H
loop2:
ADDAX,[BX]
ADDBX,02H
DECCX
JNZloop2
POPCX
DECCX
JNZloop1
MOVAH,4CH
INT21H
codeends
endstart
=====3_13.asm=====
datasegment
XDD11223344H
YDD0AABBCCDDH
ZDD55667788H
WDD?
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVAX,WORDPTRX
MOVDX,WORDPTRX+2
ADDAX,WORDPTRY
ADCDX,WORDPTRY+2
ADDAX,24
ADCDX,0
SUBAX,WORDPTRZ
SBBDX,WORDPTRZ+2
MOVWORDPTRW,AX
MOVWORDPTRW+2,DX
MOVAH,4CH
INT21H
codeends
endstart
=====3_14.asm=====
datasegment
CNTEQU8
TABLEDB'1','2','','F','A','B','C','K'
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVAH,'A'
MOVBX,OFFSETTABLE
MOVCX,CNT
loop1:
CMP[BX],AH
JZloop2
INCBX
DECCX
JNZloop1
MOVBX,0FFFFH
loop2:
MOVAH,4CH
INT21H
codeends
endstart
=====5_1.asm=====
datasegment
stringDB'dirtypecddatedel'
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVBX,offsetstring
MOVCX,20H
MOVAL,20H
loop1:
CMPAL,[BX]
JNEnext
INCCH
next:
INCBX
DECCL
JNZloop1
exit:
MOVAH,4CH
INT21H
codeends
endstart
=====5_2.asm=====
codesegment
assumeCS:
code
start:
MOVBX,9A1BH
MOVCH,4
loop1:
MOVCL,4
ROLBX,CL
MOVAL,BL
ANDAL,0FH
ADDAL,30H
CMPAL,3AH
JLprint
ADDAL,07H
print:
MOVDL,AL
MOVAH,02H
INT21H
DECCH
JNZloop1
MOVAH,4CH
INT21H
codeends
endstart
=====5_3.asm=====
datasegment
org30h
yEQU981Fh
numDWy
addrDWnum
countDW?
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
XORCX,0
MOVBX,addr
MOVAX,[BX]
repeat:
TESTAX,0FFFFH
JZexit
JNSshift
INCCX
shift:
SHLAX,1
JMPrepeat
exit:
MOVcount,CX
MOVAH,4CH
INT21H
codeends
endstart
=====5_3A.asm=====
datasegment
org30h
yEQU981Fh
numDWy
addrDWnum
countDW?
dataends
codesegment
assumeCS:
code,DS:
data
start:
MOVAX,data
MOVDS,AX
MOVCX,1000H
MOVBX,addr
MOVAX,[BX]
repeat:
SHLAX,1
JNCnext
INCCL
next:
DECCH
JNZrepeat
exit:
MOVcount,CX
MOVAH,4CH
INT21H
codeends
endstart
=====5_4.asm=====
codesegment
assumeCS:
code
start:
CLD
PUSHDI
MOVCX,ES:
[DI]
ADDDI,2
REPNZSCASW
JEdelete
POPDI
JMPexit
delete:
JCXZdec_cnt
next:
MOVBX,ES:
[DI]
MOVES:
[DI-2],BX
ADDDI,2
LOOPnext
dec_cnt:
POPDI
DECwordptrES:
[DI]
exit:
MOVAH,4CH
INT21H
codeends
endstart
=====5_5.asm=====
datasegment
;stringdb'abcdef565xyz7',0
stringdb'abcdefxyz',0
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdl,0dfh
movbx,offsetstring
movcx,100
l1:
cmpbyteptr[bx],30h
jbnext
cmpbyteptr[bx],39h
janext
ordl,20h
jmpexit
next:
incbx
loopl1
exit:
movcl,dl
movah,4ch
int21h
codeends
endstart
=====5_6A.asm=====
CODESEGMENT
ASSUMECS:
CODE
START:
PUSHDI
MOVCX,ES:
[DI]
ADDDI,2
LP1:
CMPCX,0
JZEXIT1
CMPAX,ES:
[DI]
JZEXIT1
ADDDI,2
DECCX
JMPLP1
EXIT1:
CMPCX,0
JZ_ELSE;NOTFOUND
_THEN:
DECCX;FOUND
DELETE:
CMPCX,0
JZEXIT2
MOVBX,ES:
[DI+2]
MOVES:
[DI],BX
ADDDI,2
DECCX
JMPDELETE
EXIT2:
POPDI
DECWORDPTR[DI]
JMPEXIT
_ELSE:
POPDI
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
=====5_6B.asm=====
CODESEGMENT
ASSUMECS:
CODE
START:
PUSHDI
MOVCX,ES:
[DI]
ADDDI,2
CLD
REPNZSCASW
JZDELETE
POPDI
JMPEXIT
DELETE:
PUSHDS;STORE
PUSHSI
PUSHES
POPDS
MOVSI,DI
SUBDI,2
REPMOVSW
POPSI;RESTORE
POPDS
POPDI
DECWORDPTR[DI]
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
=====5_7.asm=====
datasegment
listdw10
dw1,12,23,34,45,56,67,78,89,90
org20h
start_addrdw?
dataends
codesegment
assumecs:
code,ds:
data
start:
pushax
movax,data
movds,ax
popax
movdi,offsetlist
movstart_addr,di
movsi,[di]
shlsi,1
addsi,di
adddi,2
l1:
cmpdi,si
janot_found
movcx,si
subcx,di
addcx,2
shrcx,1
movbx,di
addbx,cx
testbx,1
jzcontinue
decbx
continue:
cmpax,[bx]
jbfirst
jasecond
jmpfound
first: