例题程序清单精简.docx

上传人:b****1 文档编号:17411867 上传时间:2023-04-24 格式:DOCX 页数:17 大小:16.31KB
下载 相关 举报
例题程序清单精简.docx_第1页
第1页 / 共17页
例题程序清单精简.docx_第2页
第2页 / 共17页
例题程序清单精简.docx_第3页
第3页 / 共17页
例题程序清单精简.docx_第4页
第4页 / 共17页
例题程序清单精简.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

例题程序清单精简.docx

《例题程序清单精简.docx》由会员分享,可在线阅读,更多相关《例题程序清单精简.docx(17页珍藏版)》请在冰豆网上搜索。

例题程序清单精简.docx

例题程序清单精简

;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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1