IBMPC汇编语言作业答案.docx

上传人:b****6 文档编号:8821765 上传时间:2023-02-01 格式:DOCX 页数:70 大小:36.12KB
下载 相关 举报
IBMPC汇编语言作业答案.docx_第1页
第1页 / 共70页
IBMPC汇编语言作业答案.docx_第2页
第2页 / 共70页
IBMPC汇编语言作业答案.docx_第3页
第3页 / 共70页
IBMPC汇编语言作业答案.docx_第4页
第4页 / 共70页
IBMPC汇编语言作业答案.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

IBMPC汇编语言作业答案.docx

《IBMPC汇编语言作业答案.docx》由会员分享,可在线阅读,更多相关《IBMPC汇编语言作业答案.docx(70页珍藏版)》请在冰豆网上搜索。

IBMPC汇编语言作业答案.docx

IBMPC汇编语言作业答案

IBM-PC汇编语言作业答案

第三章作业答案

3.1

寻址方式有效地址(EA)

(1)立即寻址无

(2)直接寻址7237H

(3)BX寄存器寻址无

(4)BX寄存器间接寻址637DH

(5)BX寄存器相对寻址0D5B4H

(6)基址变址寻址8E18H

(7)相对基址变址寻址004FH

3.2

(1)ADDDX,BX

(2)ADDAL,[BX][SI]

(3)ADD[BX+OB2H],CX

(4)ADDWORDPTR[0524H],2A59H

(5)ADDAL,0B5H

3.3

(1)LEABX,BLOCK+(6-1)*2

MOVDX,[BX]

(2)LEABX,BLOCK

MOVDX,[BX+10]

(3)MOVSI,10

LEABX,BLOCK

MOVDX,[BX][SI]

3.4

(1)1200H

(2)0100H

(3)4C2AH

(4)3412H

(5)4C2AH

(6)7856H

(7)65B7H

3.5

(1)EA=(IP)+D=7CD9H

(2)物理地址=16×DS+(BX)=224A0HIP=0600H

(3)物理地址=16×DS+(BX)+D=275B9HIP=098AH

 

3.6

MOVBX,2000H

LDSSI,[BX]

MOVAX,[SI]

10

FF

00

80

1D000H

1D001H

1D002H

1D003H

AX

8FF10H

8FF11H

8FF12H

8FF13H

3.7

(1)0626H+27H=064DH

(2)0626H+6BH=0691H

(3)0626H+0FFC6H=05ECH(注意符号扩展)

3.8

寻址方式物理地址

(1)立即数寻址无

(2)寄存器寻址无

(3)直接寻址20100H

(4)直接寻址20050H

(5)寄存器间接寻址20100H

(6)寄存器间接寻址21100H

(7)寄存器间接寻址15010H

(8)寄存器间接寻址200A0H

(9)寄存器相对寻址20000H+0100H+0AH=2010AH

(10)寄存器相对寻址20150H

(11)基址变址寻址201A0H

(12)相对基址变址寻址201F0H

3.9

(1)MOVAX,[BX+12]

MOVZERO,AX

(2)MOVAX,ARRAY[BX]

MOVZERO,AX

3.10

(1)1234H

(2)0032H

3.11

1E00H

3.13

SP57H0FFAAEH

80H0FFAAFH

SP0FFAB0H

(1)初始

(2)8057H入栈

 

SP

79H0FFACH79H0FFACH

0FH0FFADH0FH0FFADH

57H0FFAEHSP57H0FFAEH

80H0FFAFH80H0FFAFH

(3)0F79H入栈(4)0F79H出栈

3.15

62A0H62A0H62A0H62A0H

+1234H+4321H+CFA0H+9D60H

74D4HA5C1H3240H

(1)0000H

SF0100

ZF0001

CF0011

OF0100

3.17

(1)MOVAX,Z

SUBAX,X

ADDAX,W

MOVZ,AX

(2)ADDX,6

ADDR,9

MOVAX,W

SUBAX,X

SUBAX,R

MOVZ,AX

(3)MOVAX,W

IMULX

ADDY,6

MOVBX,Y

IDIVBX

MOVZ,AX

MOVR,DX

(4)MOVBX,W

SUBBX,X;(BX)=W-X

MOVAX,Y

MOVCX,5

IMULCX;(DX,AX)=Y×5

MOVCXAX

MOVAX,BX;BX扩展到EAX(32位)

CWD;被除数扩展到64位

IDIVCX;除数Y限制为字(16位)

SALAX,1

MOVZ,AX;可以认为AX能存储下结果

 

3.19

程序

AX

CF

SF

ZF

0F

MOVAX,0

0000H

----

----

----

----

DECAX

FFFFH

----

1

0

1

ADDAX,7FFFH

7FFFH

1

0

0

0

ADDAX,2

8000H

0

1

0

1

NOTAX

7FFFH

0

1

0

1

SUBAX,0FFFFH

8000H

1

1

0

1

ADDAX,8000H

0000H

1

0

1

1

SUBAX,1

FFFFH

1

1

0

0

ANDAX,58D1H

58D1H

0

0

0

0

SACAX,1

B1A2H

0

1

0

1

SARAX,1

D8D1H

0

1

0

0

NEGAX

272FH

1

0

0

0

RORAX,1

9397H

1

1

0

1

3.21

NOTAX

NOTDX

ADDAX,1

ADCDX,0

3.23

(1)BX=009AH

(2)BX=0061H(3)BX=00FBH(4)BX=001CH(5)BX=0000H(6)BX=0001H

3.25

(1)+53×2MOVAL,35H

(2)-49×2MOVAL,CFH

SALAL,1SALAL,1

结果为6AH=106D结果为9EH=-98D

(3)+53÷2MOVAL,35H(4)-49÷2MOVAL,CFH

SARAL,1SARAL,1

结果为1AH=26D结果为E7H=-24D

3.27

(1)DX=0000000001011100B

(2)DX=0000000000010111B

(3)DX=0000010111001000B

(4)DX=0000000001110010B

(5)DX=0001000000010111B

(6)DX=0000000011001101B

(7)DX=0000000010111001B

(8)DX=0000010111001100B

(9)DX=0000000011011100B

3.29

(1)LEASI,CONAME

(2)LEASI,CONAME(3)LEASI,CONAME

LEADI,PRLINEADDSI,19ADDSI,2

MOVCX,20LEADI,PRLINELODSW

CLDADDDI,19

REPMOVSBSTD

REPMOVSB

(4)LEADI,PRLINE(5)LEADI,CONAME

ADDDI,5MOVAL,20H

STOSWMOVCX,20

CLD

REPNESCASB

JNZNO-FOUND

MOVBH,AL

…….

NO-FOUND:

3.31

(1)CLD

(2)LEADI,STUDENT_ADDR

MOVCX,132MOVAL,‘-’

MOVAL,20HMOVCX,9

LEADI,PRINT_LINECLD

REPSTOSBREPNESCASB

第一个‘—’在DI-1中

(3)LEADI,STUDENT_ADDR+8STD

MOVAL,‘-’REPNESCASB

MOVCX,9最后一个‘-’在DI-1中

(4)LEADI,STUDENT_NAME(5)CLD

MOVAL,20HMOVCX,30

MOVCX,30LEASI,STUDENT_NAME

CLDLEADI,PRINT_LINE

REPESCASBREPMOVSB

JNENO-MATCHSTD

MOVCX,30MOVCX,9

LEADI,STUDENT_NAMELEASI,STUDENT_ADDR+8

MOVAL,‘﹡’LEADI,PRINT_LINE+131

REPSTOSBREPMOVSB

NO-MATCH:

HLT

3.35

AX

BX

JB

JNB

JBE

JNBE

JL

JNL

JLE

JNLE

1F52H

1F52H

×

×

×

×

88C9H

88C9H

×

×

×

×

FF82H

007EH

×

×

×

×

58BAH

020EH

×

×

×

×

FFC5H

FF8BH

×

×

×

×

09A0H

1E97H

×

×

×

×

8AEAH

FC29H

×

×

×

×

D367H

32A6H

×

×

×

×

3.37

MOVAL,STATUS

TESTAL,00101010B

JZROUTINE-4;当全为0时

JPROUTINE-2;偶转移,当有2个1时(0的情况前一条已经跳转)

CMPAL,00101010B

JZROUTINE-1;当为3个1时

JMPROUTINE-3;剩余情况,1个1时。

3.39

(1)

(2)

0400H

0A00H

0400H

(3)(4)

0100H

B200H

0A00H

0400H

0100H

B200H

0A00H

0400H

(5)(6)

0100H

0C00H

0A00H

0400H

0100H

0C00H

0A00H

0400H

0100H

0C00H

0A00H

0400H

(7)(8)

0100H

0C00H

0A00H

0400H

(9)

0100H

0C00H

0600H

1000H

3.29

(1)LEASI,CONAME

LEADI,PRLINE

MOVCX,20

CLD

REPMOVSB

(2)LEASI,CONAME+19

LEADI,PRLINE+19

MOVCX,20

STD

REPMOVSB

(3)LEASI,CONAME+3

STD

LODSB

MOVAH,AL

LODSB

(4)LEADI,PRLINE+5

CLD

STOSB

MOVAL,AH

STOSB

(5)LEADI,CONAME

MOVCX,20

MOVAL,20H

CLD

REPNZSCASB

JNZNOFOUND

MOVBH,20H

************************************

3.30P112

LEADI,STRING

MOVCX,18

MOVAL,'&'

CLD

REPNZSCASB

JNZNOFOUND

DECDI

MOV[DI],20H

************************************

3.31

(1)LEASI,PRINT_LINE

MOVAL,20H

MOVCX,132

CLD

REPLODSB

(2)LEADI,STUDENT_ADDR

MOVCX,9

MOVAL,'_'

CLD

REPNZSCASB

(3)LEADI,STUDENT_ADDR+8

MOVCX,9

MOVAL,'_'

STD

REPNZSCASB

(4)LEASI,STUDENT_NAME

CLD

MOVCX,30

AGA:

LODSB

CMPAL,20H

JZNEXT

JMPSHORTNEXT1

NEXT:

LOOPAGA

NEXT1:

JNZEXIT

LEADI,STUDENT_NAME

MOVAL,'*'

MOVCX,30

CLD

REPSTOSB

EXIT:

(5)LEASI,STUDENT_NAME

LEADI,PRINT_LINE

MOVCX,30

CLD

REPMOVSB

LEASI,STUDENT_ADDR+8

LEADI,PRINT_LINE+131

MOVCX,9

STD

REPMOVSB

************************************

3.32

LEASI,OLDS

LEADI,NEWS

MOVCX,5

CLD

REPZCMPSB

JNZNEW_LESS

************************************

3.33

(1)CMPDX,CX

JAEXCEED

(2)CMPBX,AX

JGEXCEED

(3)CMPCX,0

JZZERO

(4)CMPBX,AX

JOOVERFLOW

(5)CMPBX,AX

JLEEQ_SMA

(6)CMPDX,CX

JBEEQ_SMA

************************************

3.34

(1)L1

(2)L1

(3)L2

(4)L5

(5)L5

************************************

3.35

(1)JNBJBEJNLJLE

(2)JNBJBEJNLJLE

(3)JNBJNBEJLJLE

(4)JNBJNBEJNLJNLE

(5)JNBJNBEJNLJNLE

(6)JBJBEJLJLE

(7)JBJBEJLJLE

(8)JNBJNBEJLJLE

************************************

3.36

2P>=qAX=1

2p

************************************

3.37

MOVAL,STATUS

NOTAL

TESTAL,2AH

JZROUTINE_1

TESTAL,0AH

JZROUTINE_2

TESTAL,22H

JZROUTINE_2

TESTAL,28H

JZROUTINE_2

TESTAL,02H

JZROUTINE_3

TESTAL,08H

JZROUTINE_3

TESTAL,20H

JZROUTINE_3

JMPROUTINE_4

************************************

3.38

(1)LOOPL20

AX=5BX=10HDX=0CX=0

(2)LOOPEL20

AX=2BX=4DX=1CX=3

(3)LOOPNEL20

AX=3BX=7DX=0CX=2

************************************

 

第5章作业答案

5.1

datareasegment

mess1db'Pleaseinputletter:

',13,10,'$'

mess2db'Pleaseinputagain:

',13,10,'$'

datareaends

programsegment

mainprocfar

assumecs:

program,ds:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

leadx,mess1

movah,09

int21h

input:

movah,07

int21h

cmpal,61h

jbagain

cmpal,7Ah

jaagain

subal,20h

movdl,al

movah,02

int21h

jmpshortexit

again:

leadx,mess2

movah,09

int21h

jmpshortinput

exit:

ret

mainendp

programends

endstart

5.2

datareasegment

stringdb'chinasdujlp'

datareaends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

datarea,es:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

moves,ax

input:

leadi,string

movah,01

int21h

movcx,11

cld

repnzscasb

jzfind

jmpinput

find:

subdi,2

movcx,3

lop:

movdl,[di]

movah,02

int21h

incdi

deccx

jzexit

jmpshortlop

exit:

ret

mainendp

prognamends

endstart

5.3

datareasegment

datareaends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

movax,1234h

movcl,4

rolax,cl

movdl,al

anddl,0fh

adddl,30h

rolax,cl

movch,al

andch,0fh

rolax,cl

movbl,al

andbl,0fh

addbl,30h

rolax,cl

andal,0fh

addal,30h

movdh,al

movcl,ch

addcl,30h

movah,02

int21h

movdl,cl

movah,02

int21h

movdl,bl

movah,02

int21h

movdl,dh

moval,dh

movah,02

int21h

ret

mainendp

prognamends

endstart

5.5

datareasegment

datareaends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

movax,1234h

movcl,4

rolax,cl

movdl,al

anddl,0fh

adddl,30h

rolax,cl

movch,al

andch,0fh

rolax,cl

movbl,al

andbl,0fh

addbl,30h

rolax,cl

andal,0fh

addal,30h

movdh,al

movcl,ch

addcl,30h

movah,02

int21h

movdl,cl

movah,02

int21h

movdl,bl

movah,02

int21h

movdl,dh

moval,dh

movah,02

int21h

ret

mainendp

prognamends

endstart

5.6

datareasegment

Mdb-3,-2,-1,-8,-5,0,-9,-23,-100,-52,-1,-19,-18,-3,32,-4,-6,-17,11,24

Pdb20dup(?

Ndb20dup(?

datareaends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

movdh,0

movdl,0

movdi,20

movbx,0

again:

cmpM[bx],0

jlless

incdh

movch,M[bx]

movP,ch

incP

jmpnext

less:

inc

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

当前位置:首页 > 解决方案 > 商业计划

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

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