11284030管猛汇编分析作业.docx

上传人:b****3 文档编号:2876336 上传时间:2022-11-16 格式:DOCX 页数:21 大小:19.17KB
下载 相关 举报
11284030管猛汇编分析作业.docx_第1页
第1页 / 共21页
11284030管猛汇编分析作业.docx_第2页
第2页 / 共21页
11284030管猛汇编分析作业.docx_第3页
第3页 / 共21页
11284030管猛汇编分析作业.docx_第4页
第4页 / 共21页
11284030管猛汇编分析作业.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

11284030管猛汇编分析作业.docx

《11284030管猛汇编分析作业.docx》由会员分享,可在线阅读,更多相关《11284030管猛汇编分析作业.docx(21页珍藏版)》请在冰豆网上搜索。

11284030管猛汇编分析作业.docx

11284030管猛汇编分析作业

1.现有程序如下:

DATASEGMENT

BUFDB‘AI39*5867Jfe=KJYKGNGK339385’

C=$-BUF

N1DB0

N2DB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,C

LEASI,BUF

L:

MOVAL,[SI]

CMPAL,30H

JBNEXT

CMPAL,39H

JANEXT

INCN1

JMPCONT

NEXT:

INCN2

CONT:

INCSI

LOOPL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

分别统计BUF数字字符和非数字字符的个数

(2)该程序执行完后,N1和N2的内容各是多少?

N1=12,N2=15

2.现有程序如下:

DATASEGMENT

BUFDB‘ER39*5867JgeewFGHYUO9385’

C=$-BUF

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,C

LEASI,BUF

L:

MOVAL,[SI]

CMPAL,61H

JBNEXT

CMPAL,7AH

JANEXT

SUBAL,20H

MOV[SI],AL

NEXT:

INCSI

LOOPL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

把BUF中的小写字母转换为大写字母

(2)该程序执行完后,BUF缓冲区的内容是什么?

程序执行完后BUF缓冲区的内容是:

ER39*5867JGEEWFGHYUO9385

3.现有程序如下:

DATASEGMENT

BUFDB47H,0A4H,93H,38,-23,55H,251,0,78H

C=$-BUF

BUF1DBCDUP(0)

BUF2DBCDUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,C

LEASI,BUF

LEADI,BUF1

LEABX,BUF2

L:

MOVAL,[SI]

CMPAL,0

JGEP

MOV[BX],AL

INCBX

JMPNEXT

P:

MOV[DI],AL

INCDI

NEXT:

INCSI

LOOPL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

完成的功能是:

把以上9个数按大于等于0和小于0分成两组,大于等于0的放在BUF1里,小于0的放在BUF2里。

(2)该程序执行完后,BUF1和BUF2缓冲区的内容各是什么?

BUF1缓冲区内容:

47H,38,55H,0,78H

BUF2缓冲区内容:

0A4H,93H,-23,251

4.现有程序如下:

DATASEGMENT

BUF1DB100DUP(?

BUF2DB200DUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,100

LEASI,BUF1

LEADI,BUF2+100

L:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

LOOPL

MOV,AH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

把BUF1中100个字节内容送入BUF2中的后100个字节单元中

(2)如果将指令“LEADI,BUF2+100”改为“LEADI,BUF2”之后,程序执行完后的结果如何?

把BUF1中的100个字节内容送入BUF2中的前100个字节单元中

5.现有程序如下:

DATASEGMENT

BUF1DB100DUP(?

BUF2DB100DUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,100

LEASI,BUF1

LEADI,BUF2

L:

MOVAL,[SI]

CMPAL,100

JBNEXT

MOV[DI],AL

INCDI

NEXT:

INCSI

LOOPL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

把BUF1中大于等于100的数放到BUF2中

(2)如果将指令“JBNEXT”改为“JAENEXT”,则程序执行结果如何?

把BUF1中小于100的数放到BUF2中

6.现有程序如下:

DATASEGMENT

BUF1DB100DUP(?

SUMDW0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,100

LEASI,BUF1

MOVAX,0

L:

ADDAL,[SI]

ADCAH,0

INCSI

LOOPL

MOVSUM,AX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

求BUF1中所有数之和

(2)如果去掉指令“ADCAH,0”,则程序执行结果将如何?

出现溢出,高位字节丢失

7.现有程序如下:

DATASEGMENT

BUF1DB32H,64H,72H,38H,68H,9AH,89H,0

SUMDW0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,BUF1

MOVAX,0

L:

CMP[SI],BYTEPTR0

JZNDO

ADDAL,[SI]

ADCAH,0

INCSI

JMPL

NDO:

MOVSUM,AX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

请回答:

(1)该程序完成什么功能?

求所有数的和sum

(2)程序执行完后,共执行了多少次相加的操作?

总共完成了7次相加

8.现有程序如下:

STACKSEGMENTSTACK‘STACK’

DW100DUP(0)

STACKENDS

DATASEGMENT

BUFDB100DUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

LEADI,BUF

L:

MOVAH,1

INT21H

CMPAL,0DH

JZEXIT

CALLSTO

JMPL

EXIT:

MOVBYTEPTR[DI],‘$’

LEADX,BUF

MOVAH,9

INT21H

MOVAH,4CH

INT21H

STOPROC

CMPAL,30H

JBNEXT

CMPAL,39H

JANEXT

MOV[DI],AL

INCDI

NEXT:

RET

STOENDP

CODEENDS

ENDSTART

请回答:

(1)STO子程序完成的功能是什么?

把寄存器中的数字字符放到BUF中

(2)该程序完成的功能是什么?

键盘输入字符,把其中的数字字符放入buf中,并显示字符

9.阅读以下程序后回答问题。

DD2

DB0,l,2,3,4,5,6,7,8,9

LEASI,DD2

LEADI,DD2+1

MOVCX,5

LOP:

MOVAL,[SI]

XCHGAL,[DI]

MOV[SI],AL

ADDSI,2

ADDDI,2

DECCX

JNZLOP

回答:

(1)该程序段完成什么功能?

相邻的两个字节数据交换

(2)程序运行后,DD2开始的l0个字节数应是什么值?

1、0、3、2、5、4、7、6、9、8

10.现有程序如下:

STACKSEGMENTSTACK'STACK'

DW20hDUP(0)

STACKENDS

DATASEGMENT

BUFDw1

CDB2

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVBL,C

MOVSI,BUF

L1:

PUSHSI

CALLSUBP1

CALLSUBP2

POPSI

INCSI

DECBL

JNZL1

MOVAH,4CH

INT21H

SUBP1PROC

PUSHAX

PUSHDX

L2:

MOVDL,41H

MOVAH,2

INT21H

DECSI

JNZL2

POPDX

POPAX

RET

SUBP1ENDP

SUBP2PROC

PUSHAX

PUSHDX

MOVCX,8

L3:

MOVDL,'*'

MOVAH,2

INT21H

LOOPL3

MOVDL,0DH

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

POPDX

POPAX

RET

SUBP2ENDP

CODEENDS

ENDSTART

请回答:

(1)SUBP1子程序完成的功能是什么?

(2)SUBP2子程序完成的功能是什么?

输出8个’*’,并以回车换行

(3)该程序完成的功能是什么?

11.现有程序如下:

DATASEGMENT

XDB0ABH

FLAGDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,X

CMPAL,0

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

当前位置:首页 > 医药卫生 > 基础医学

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

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