例题程序清单精简.docx
- 文档编号:17411867
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:17
- 大小:16.31KB
例题程序清单精简.docx
《例题程序清单精简.docx》由会员分享,可在线阅读,更多相关《例题程序清单精简.docx(17页珍藏版)》请在冰豆网上搜索。
例题程序清单精简
;exp1.asm
;sample顺序结构查0~9平方表
DATASEGMENT
INPUTDB'PLEASEINPUTX(0~9):
$'
TABLEDb0,1,4,9,16,25,36,49,64,81
XXDB?
YYDB?
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
STARTPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAH,9
LEADX,INPUT
INT21H
MOVAH,1
INT21H
ANDAL,0FH
MOVXX,AL
MOVBX,OFFSETTABLE
MOVAH,0
MOVAL,XX
ADDBX,AX
MOVAL,[BX]
MOVYY,AL
RET
STARTENDP
CODEENDS
ENDSTART
exp3.asm
;sample分支结构
DATASEGMENT
XXDB56
YYDB?
DATAENDS
STACKSEGMENTPARASTACK
DB256DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,[XX]
CMPAL,0
JGEBIGER
MOVAL,-1
JMPEQUL
BIGER:
JEEQUL
MOVAL,1
EQUL:
MOVYY,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
exp5.asm
;sample分支结构跳转表
DATASEGMENT
BASEDWSBR0,SBR1,SBR2,SBR3
BNDB3
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
STARTPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVBL,BN
MOVBH,0
SHLBX,1
JMPBASE[BX]
SBR0:
MOVAH,2
MOVDL,'0'
INT21H
RET
SBR1:
MOVAH,2
MOVDL,'1'
INT21H
RET
SBR2:
MOVAH,2
MOVDL,'2'
INT21H
RET
SBR3:
MOVAH,2
MOVDL,'3'
INT21H
RET
STARTENDP
CODEENDS
ENDSTART
exp52.asm
;sample分支结构跳转指令表
DATASEGMENT
BNDB3
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
STARTPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAL,BN
MOVAH,0
ADDAX,AX
MOVBX,OFFSETBASE
ADDBX,AX
JMPBX
BASE:
JMPSBR0
JMPSBR1
JMPSBR2
JMPSBR3
SBR0:
MOVAH,2
MOVDL,'0'
INT21H
RET
SBR1:
MOVAH,2
MOVDL,'1'
INT21H
RET
SBR2:
MOVAH,2
MOVDL,'2'
INT21H
RET
SBR3:
MOVAH,2
MOVDL,'3'
INT21H
RET
STARTENDP
CODEENDS
ENDSTART
;EXP6.ASMsample循环结构统计数据块负数的个数
DATASEGMENT
BUFDB-1,3,5,-7,99,-120,127,-128,56,2
CUNTEQU$-BUF
SUMDW?
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
LEABX,BUF
MOVCX,CUNT
MOVDX,0
LP1:
MOVAL,[BX]
ANDAL,AL
JNSPLUS
INCDX
PLUS:
INCBX
LOOPLP1
MOVSUM,DX
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
;EXP7.ASMsample循环结构
CODESEGMENT
ASSUMECS:
CODE
MAIN:
MOVCX,0
LP:
ANDAX,AX
JZEXIT
SALAX,1
JNCZERO
INCCX
ZERO:
JMPLP
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
;EXP8.asm
DATASEGMENT
BUFDB02H,38H,47H,33H,09H,76H,7BH,23H
CUNTEQU$-BUF
SUMDB3DUP(0)
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
MOVBX,0
MOVCX,CUNT
LP1:
MOVAL,BUF[BX]
CMPAL,30H
JBNEXT
CMPAL,39H
JAABC1
INCSUM[0]
JMPNEXT
ABC1:
CMPAL,’A’
JBNEXT
CMPAL,’Z’
JAabc2
INCSUM[1]
JMPNEXT
abc2:
CMPAL,’a’
JBNEXT
CMPAL,’z’
JANEXT
INCSUM[2]
NEXT:
INCBX
LOOPLP1
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
;EXP9.ASMsample子程序调用寄存器传递参数
DATASEGMENT
BUFFER1DB90,-56,98,12,68,-100,37,15,-4
CUNT1EQU$-BUFFER1
RESULT1DW?
BUFFER2DB101,32,-89,16,82,25,91,84,71
CUNT2EQU$-BUFFER2
RESULT2DW?
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETBUFFER1
MOVCX,CUNT1
CALLSUM
MOVRESULT1,AX
MOVSI,OFFSETBUFFER2
MOVCX,CUNT2
CALLSUM
MOVRESULT2,AX
MOVAH,4CH
INT21H
;入口参数:
SI:
数组首地址,CX:
数组长度
;出口参数:
AX:
求和
SUMPROC
MOVAX,0
CMPCX,0
JZEXIT
AGAIN:
PUSHAX
MOVAL,[SI]
CBW
MOVBX,AX
POPAX
ADDAX,BX
INCSI
LOOPAGAIN
EXIT:
RET
SUMENDP
CODEENDS
ENDMAIN
;sample子程序调用参数地址表传递参数
DATASEGMENT
BUFFERDB11,22,33,44,55,66,77,88,99,101,111,122
CUNTDW$-BUFFER
RESULTDW?
TABLEDW3DUP(?
)
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
MOV[TABLE],OFFSETBUFFER
MOV[TABLE+2],OFFSETCUNT
MOV[TABLE+4],OFFSETRESULT
LEABX,TABLE
CALLSUM
MOVAH,4CH
INT21H
;入口参数BX:
参数地址表的首地址
SUMPROC
MOVSI,[BX]
MOVBP,[BX+2]
MOVCX,DS:
[BP]
MOVDI,[BX+4]
MOVAX,0
CMPCX,0
JZEXIT
AGAIN:
ADDAL,[SI]
ADCAH,0
INCSI
LOOPAGAIN
MOV[DI],AX
EXIT:
RET
SUMENDP
CODEENDS
ENDMAIN
;sample子程序调用堆栈传递参数
DATASEGMENT
ARRAYDB11,22,33,44,55,66,77,88,99,101,111,122
CUNTDW$-ARRAY
RESULTDW?
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
LEABX,ARRAY
PUSHBX
LEABX,CUNT
PUSHBX
LEABX,RESULT
PUSHBX
CALLfarptrSUM
MOVAH,4CH
INT21H
CODEENDS
CODE2SEGMENT
ASSUMECS:
CODE2
SUMPROCFAR
PUSHAX
PUSHBX
PUSHCX
PUSHBP
MOVbp,SP
MOVBX,[BP+14]
MOVCX,[BX]
MOVBX,[BP+12]
MOVSI,[BP+16]
MOVAX,0
CMPCX,0
JZEXIT
AGAIN:
ADDAL,[SI]
ADCAH,0
INCSI
LOOPAGAIN
MOV[BX],AX
EXIT:
POPBP
POPCX
POPBX
POPAX
RET6
SUMENDP
CODE2ENDS
ENDmain
;EXP10.ASM
DATASEGMENT
ARYDB56H,78H,12H,99H,34H,23H,32H;BCDcode
CUNTDW$-ARY
RESULTDW?
DATAENDS
STACKSEGMENTPARASTACK'STACK'
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
LEABX,ARY
PUSHBX
LEABX,CUNT
PUSHBX
LEABX,RESULT
PUSHBX
CALLfarptrSUM
MOVAH,4CH
INT21H
CODEENDS
CODE2SEGMENT
ASSUMECS:
CODE2
SUMPROCFAR
PUSHAX
PUSHBX
PUSHCX
PUSHBP
MOVBP,SP
MOVBX,[BP+14]
MOVCX,[BX]
MOVBX,[BP+12]
MOVSI,[BP+16]
MOVAX,0
CMPCX,0
JZEXIT
AGAIN:
ADDAL,[SI]
DAA
MOVDL,AL
MOVAL,0
ADCAL,AH
DAA
MOVAH,AL
MOVAL,DL
INCSI
LOOPAGAIN
MOV[BX],AX
EXIT:
POPBP
POPCX
POPBX
POPAX
RET6
SUMENDP
CODE2ENDS
ENDmain
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 例题 程序 清单 精简