华南农业大学8086汇编实验答案资料.docx

上传人:b****1 文档编号:1343177 上传时间:2022-10-21 格式:DOCX 页数:60 大小:22.57KB
下载 相关 举报
华南农业大学8086汇编实验答案资料.docx_第1页
第1页 / 共60页
华南农业大学8086汇编实验答案资料.docx_第2页
第2页 / 共60页
华南农业大学8086汇编实验答案资料.docx_第3页
第3页 / 共60页
华南农业大学8086汇编实验答案资料.docx_第4页
第4页 / 共60页
华南农业大学8086汇编实验答案资料.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

华南农业大学8086汇编实验答案资料.docx

《华南农业大学8086汇编实验答案资料.docx》由会员分享,可在线阅读,更多相关《华南农业大学8086汇编实验答案资料.docx(60页珍藏版)》请在冰豆网上搜索。

华南农业大学8086汇编实验答案资料.docx

华南农业大学8086汇编实验答案资料

 

华南农业大学8086汇编实验答案

1-1

DATASSEGMENT

STRINGDB"BASEDADDRESSING",13,10,'$'

LENEQU$-STRING

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

LEADX,STRING

MOVAH,9

INT21H

LEASI,STRING

ADDSI,LEN

SUBSI,03H

MOVCX,LEN

SUBCX,02H

LOP1:

MOVAH,02H

MOVDL,[SI]

INT21H

DECSI

LOOPLOP1

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

1-2

DATASSEGMENT

XDB"X=$"

YDB13,10,"Y=$"

ZDB13,10,"X+Y=$"

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAH,9;输出“X=”

LEADX,X

INT21H

MOVAH,1;输入并回显X,X放在CL

INT21H

SUBAL,30H

MOVCL,AL

MOVAH,9;输出“Y=”

LEADX,Y

INT21H

MOVAH,1;输入并回显Y,Y放在DL,X+Y的值放在CL

INT21H

SUBAL,30H

ADDCL,AL

MOVAH,9;输出“X+Y=”

LEADX,Z

INT21H

MOVAH,2;输出X+Y的值

MOVDL,CL

ADDDL,30H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

1-3

DATASSEGMENT

ARRAYDB64DUP(25H,43H,41H,78h)

UPDW0

DOWNDW0

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

LEASI,ARRAY

MOVCX,100H

C0:

MOVAL,[SI]

CMPAL,42H

JBC1

JNBC2

C1:

INCDOWN

JMPC3

C2:

INCUP

JMPC3

C3:

INCSI

LOOPC0

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

2-1

DATASSEGMENT

CAPITALDB13,10,'$'

SDB13,10,"Pleaseenteralowercaseletter:

",'$'

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVCX,5

L:

MOVAH,1

INT21H

MOVBL,AL

CMPBL,61H

JBEXCEPTION

CMPBL,7AH

JNBEXCEPTION

PUSHAX

LEADX,CAPITAL

MOVAH,9

INT21H

POPDX

SUBDL,20H

MOVAH,2

INT21H

JMPFINAL

EXCEPTION:

LEASI,S

MOVDX,SI

MOVAH,9

INT21H

LOOPL

FINAL:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

2-2

DATASSEGMENT

STRINGDB"zabcdefghijklmnopqrstuvwxyza"

SPACEDB13,10,'$'

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAH,1;输入并回显测试的一个小写字母

INT21H

LEADX,SPACE

MOVAH,9

INT21H

LEASI,STRING;在字符串string中查找输入的字母

L:

INCSI

CMPAL,[SI]

JNZL

DECSI;显示前导字母、输入字母和后续字母

MOVCX,3

L1:

MOVDL,[SI]

MOVAH,2

INT21H

INCSI

LOOPL1

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

2-3

DATASSEGMENT

STRING1DB"ASTRING"

COUNT1DW$-STRING1

STRING2DB"STRING"

COUNT2DW$-STRING2

ANSWER1DB'MATCH','$'

ANSWER2DB'NOMATCH','$'

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,COUNT1;比较字符串长度是否相同

MOVBX,COUNT2

CMPAX,BX

JNZNEXT

MOVCX,COUNT1;循环比较字符串的每个字符

LEASI,STRING1

LEADI,STRING2

L:

MOVAL,[SI]

CMPAL,[DI]

JNZNEXT;如果不相同就jmp到next段执行

INCSI

INCDI

LOOPL

LEADX,ANSWER1;两个字符串匹配

MOVAH,9

INT21H

JMPFINAL

NEXT:

LEADX,ANSWER2;两个字符串不匹配

MOVAH,9

INT21H

FINAL:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

2-4

DATASSEGMENT

MDB4DUP(8,-2,2,-3,-5)

PDW0

NDW0

S1DB"Thenumberofpositivenumbers:

",'$'

S2DB13,10,"Thenumberofnegativenumbers:

",'$'

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

LEASI,M

MOVCX,20

L:

MOVAL,[SI]

CMPAL,0;每个数跟0比较

JLL1;负数jmp到L1

JGL2;正数jmp到L2

L1:

INCN

JMPL3

L2:

INCP

JMPL3

L3:

INCSI

LOOPL

LEADX,S1

MOVAH,9

INT21H

LEADI,P

MOVAX,[DI];输出正数的个数

MOVBL,10d

DIVBL

MOVDL,AL

MOVBH,AH

ADDDL,30H

MOVAH,2

INT21H

MOVDL,BH

ADDDL,30H

MOVAH,2

INT21H

LEADX,S2

MOVAH,9

INT21H

LEADI,N

MOVAX,[DI];输出负数的个数

MOVBL,10d

DIVBL

MOVDL,AL

MOVBH,AH

ADDDL,30H

MOVAH,2

INT21H

MOVDL,BH

ADDDL,30H

MOVAH,2

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

3-1

DATASSEGMENT

DATADW10DUP(5,6,-4,-5,8,9,10,188,-178,-255)

COUNTDW($-DATA)/2

COUNT1DW0

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVCX,COUNT

LEASI,DATA-2

L1:

ADDSI,2;寻找第一个偶数放在AX

MOVAX,[SI]

DECCX

TESTAL,01H

JNZL1

L2:

ADDSI,2;寻找第二个偶数放在BX

MOVBX,[SI]

CMPCX,0;如果到达数组的末尾则退出

JZL4

DECCX

TESTBL,01H

JNZL2

CMPAX,BX

JGL3

JMPL2

L3:

MOVAX,BX;AX>BX,两者交换寄存器内容

JMPL2

L4:

MOVAH,4CH;程序退出

INT21H

CODESENDS

ENDSTART

3-2

DATASSEGMENT

NUMDW0

CRLFDB13,10,'$'

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVDX,0

MOVCX,4

L:

MOVAH,1

INT21H

CMPAL,40H

JGL1

JLL2

L1:

SUBAL,07H;大写字母多减7

L2:

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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