廖建明汇编教材习题集.docx

上传人:b****8 文档编号:10049282 上传时间:2023-02-08 格式:DOCX 页数:34 大小:42.37KB
下载 相关 举报
廖建明汇编教材习题集.docx_第1页
第1页 / 共34页
廖建明汇编教材习题集.docx_第2页
第2页 / 共34页
廖建明汇编教材习题集.docx_第3页
第3页 / 共34页
廖建明汇编教材习题集.docx_第4页
第4页 / 共34页
廖建明汇编教材习题集.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

廖建明汇编教材习题集.docx

《廖建明汇编教材习题集.docx》由会员分享,可在线阅读,更多相关《廖建明汇编教材习题集.docx(34页珍藏版)》请在冰豆网上搜索。

廖建明汇编教材习题集.docx

廖建明汇编教材习题集

习题一

1.1试分别将下列二进制数真值用补码表示(8位二进制数)。

(1)+01101011

(2)-01011100(3)-00111111(4)+01111011

1.2.试分别将下列补码表示的二进制数转换为相应的十进制数真值。

(1)11111110

(2)01100011(3)10001100(4)11000100

1.3.试完成下列数制间的转换。

(1)十进制数转换为8位二进制数

34,28,100,127,89,57

(2)无符号二进制数转换为十进制数

01011101,11100111,00101110,10101100,00011100,11010101

(3)十进制数转换为十六进制数

79,300,48,19,133,243

(4)八进制数转换为十六进制数

234,112,23,76,36,222

1.4.试分别完成下列补码表示的二进制数运算,并将结果转换为十进制数真值。

(1)01101100+10001110

(2)11100110-10101100(3)01110100-00011101

(4)10001110-00110011(5)11111111-01111111(6)10000000+01110011

1.5.试分别完成下列各十六进制数的加减运算,结果用十六进制数表示。

(1)3E40+AB54

(2)1000+F300(3)8799-6DE4(4)DE4C-A0E4

1.6.设有二进制数10111000,若将该数分别看作是无符号数、原码表示的带符号数和补码表示的带符号数,它对应的十进制数真值分别是多少?

1.7.要表示无符号十进制数1000、10000和100000,至少分别需要多少位二进制数?

1.8.由键盘输入的字符一般以其ASCII码形式来表示。

当从键盘输入十六进制数的16个数符(0~9和A~F)时,如何将它们转换为对应的四位二进制数0000~1111?

习题二

2.1如何理解微处理器、微型计算机和微型计算机系统三个概念?

2.2试说明Intel8086/8088CPU采用了什么结构使得其与8位及8位以下CPU相比具有更高的指令执行效率?

2.3Intel8086/8088CPU包含哪几个组成部分?

它们各自的功能是什么?

2.4Intel8086/8088CPU中有哪些寄存器?

它们的用途是什么?

2.5Intel8086/8088CPU中标志寄存器各位都有什么含义?

2.6Intel8086/8088CPU中的寄存器都是16位的,那么它是怎么实现对20位物理地址寻址的?

2.7在IBMPC微型计算机上,分别进行以下8位二进制数的运算后,标志寄存器中OF、ZF、SF、CF的值分别为多少?

(1)10101011+01010101

(2)11011010+11101101

(3)01010101-00111110

(4)10110011-01100010

2.8有两个字数据12H和AB12H分别存放在存储器的10016H和8BA00H中,请图示它们在存储器中的存放情况。

2.9在8086/8088中,某存储单元的逻辑地址如下,请算出它们的物理地址是多少?

(1)4514H:

017BH

(2)F000H:

0100H

(3)2350H:

1ABCH

(4)10E0H:

2020H

2.10数据段中某个存储单元在(DS)=095FH时,物理地址是11820H,那么当DS=0F5FH时,物理地址为多少?

2.11已知一条指令执行前,(CS)=03FAH,(IP)=45A0H,该指令的第1字节的物理地址是多少?

2.12如图2.19所示,试写出地址为20021H、20024H、20026H字节单元的内容,以及地址为20022H、20024H、20026H的字单元内容。

图2.19习题2.10图示

2.13如图2.20所示,地址20000H为数据段的段基址,那么逻辑地址为2000H:

0020H的存储单元的物理地址是多少?

该地址的字内容是多少?

图2.20习题2.11图示

2.14IBMPC微型计算机中某一个存储单元的物理地址是12345H,试计算下列不同的逻辑地址表示:

(1)1234H:

________H

(2)_______H:

0345H

2.15设堆栈寄存器(SS)=3E4BH,程序中设置堆栈长度为200个字节,试计算出堆栈底部字单元物理地址、堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。

2.16设(AX)=1122H,(BX)=3344H,(CX)=5566H,(SP)=2000H,试分析以下程序执行后AX、BX、CX、SP中的内容分别为多少?

并画出堆栈变化的示意图。

PUSHAX

PUSHBX

PUSHCX

POPAX

POPCX

2.17设(SP)=0040H,如果用入栈指令存入5个数据,则SP为多少?

若又用出栈指令取出2个数据,则SP为多少?

习题三

3.1写出下列指令源操作数的寻址方式,并说明该操作数在哪个段?

(1)MOVAX,68H

(2)MOVAH,BL

(3)MOVAX,[BX]

(4)MOVAX,[SI]

(5)MOVAX,[5000H]

(6)MOVAL,BLOCK

(7)MOVBX,[BP+5]

(8)MOVAX,CS:

[1000H]

(9)MOVDS,AX

(10)MOVBL,BUF[SI]

(11)MOVAX,BUF[BX][SI]

(12)MOVAX,[BP–10][DI]

(13)MOVAX,SS:

[BX–100][SI]

(14)MOVAX,AREY[BP][SI]

3.2假设(DS)=3000H,(ES)=4100H,(SS)=2000H,(SI)=00A0H,(DI)=2H,(BX)=100H,(BP)=10H,(BUF)=2000H。

试指出下列各指令中源操作数的寻址方式,若为存储器操作数,请计算其物理地址。

(1)MOVAL,[0ABCH]

(2)MOVAX,SI

(3)MOVAX,BUF

(4)MOVAX,BUF[BX]

(5)MOVAX,[BX]

(6)MOVAX,[SI]

(7)MOVAL,[BP]

(8)MOVAX,BUF[BP][SI]

(9)MOVAX,[BX–40H]

(10)MOVAX,40H[SI]

(11)MOVAX,[BX–40H][BX]

(12)MOVAX,[BP+100H][SI]

(13)MOVAX,BUF[DI]

(14)MOVAX,ES:

BUF[BX][DI]

3.3已知(SS)=0915H,(DS)=0930H,(SI)=0A0H,(DI)=1C0H,(BX)=80H,(BP)=470H。

现有一条指令“MOVAX,SRC”,若源操作数的物理地址为095C0H,试用四种不同的寻址方式改写此指令(要求上述每个已知条件至少要使用一次)。

3.4指出下列指令是否合法。

(1)MOVAX,DL

(2)MOV[BX],5

(3)ADDAX,5

(4)MOVDS,1000H

(5)PUSHCH

(6)POPCS

(7)ADDES,AX

(8)MOVSS,CS

(9)ADD[BP],DA_BYTE

(10)INC[BX]

(11)XCHGAX,1234H

(12)CMPAL,1919H

(13)SAR[BX][DI],1

(14)RCLDX,2

(15)MOVCS,AX

(16)SUB5678H,BX

(17)NOTAX,CL

(18)MOVAX,[BX][BP]

(19)ANDAX,10H[SI][DI]

(20)LEADS,318H[SI]

3.5已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。

下列各指令或程序段分别执行后的结果如何?

(1)MOVCL,20H[BX][SI]

(2)MOV[BP][DI],CX

(3)LEABX,20H[BX][SI]

MOVAX,2[BX]

(4)LDSSI,[BX][DI]

MOV[SI],BX

(5)XCHGCX,32H[BX]

XCHG20H[BX][SI],AX

3.6如果TABLE为数据段中0032单元的符号地址,其中存放的内容为1234H,试问以下两条指令有什么区别?

指令执行完后AX寄存器的内容是什么?

MOVAX,TABLE

LEAAX,TABLE

3.7假设(CX)=0FFFFH,那么下面指令单独执行后标志寄存器的CF、AF、ZF、SF和OF分别是什么?

(如无影响用“×”表示)

(1)SUBCX,0FFFFH

(2)MOVCX,BX

(3)INCCX

3.8读程序题。

(1)已知(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H)=464H。

LEASI,[SI]

MOVAX,[SI]

MOV[SI+22H],1200H

LDSSI,[SI+20H]

ADDAX,SI

上述程序段执行后:

(DS)=________,(SI)=________,(AX)=________。

(2)已知(BX)=6035H,(CX)=0F0FH。

ORBH,CH

ANDBL,CL

NEGBL

NOTBH

上述程序段执行后:

(BH)=________,(BL)=________。

(3)已知(AX)=0FF60H,CF=1。

MOVDX,96

XORDH,0FFH

SBBAX,DX

上述程序段执行后:

(AX)=________,CF=________。

(4)已知(AX)=0A65CH,(CX)=0F002H。

ROLAX,CL

ORAH,CH

RCRAX,CL

上述程序段执行后:

(AX)=________,CF=________。

(5)已知(AX)=0FFAAH,CF=1。

MOVCX,0ABH

ORCX,0FF00H

SUBAX,CX

上述程序段执行后:

(AX)=________,CF=________。

3.9试根据以下要求写出相应的汇编语言指令或指令序列。

(1)将DH的低三位清0,而其他位保持不变。

(2)将DI的高5位置1,而其他位保持不变。

(3)将AX的第0~3位置1,第7~9位取反,第13~15位清0,其他位保持不变。

(4)把标志寄存器中的IF位置1。

(5)由寄存器AX、DX组成一个32位带符号数(DX中存放高16位),试求这个数的负数。

(6)现有3个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下实现:

(A)+(B)=>(C)。

(7)用一条指令将CX中的整数变为奇数,如果原来已是奇数,则CX中数据保持不变,如果原来是偶数,则(CX)+1形成奇数。

(8)用一条指令将CX中的整数变为偶数,如果原来已是偶数,则CX中数据保持不变,如果原来是奇数,则(CX)-1形成偶数。

3.10给出下列指令的机器目标代码。

(1)MOVBL,12H[SI]

(2)MOVES:

12H[SI],BL

(3)ADDWORDPTR0ABH[BP][DI],1234H

(4)SALDX,1

(4)RCLBYTEPTR10H[BX],CL

(5)NOTDI

(6)STC

(7)POPDS

(8)PUSHCX

习题四

4.1设数据段数据定义如下:

DATASEGMENT

NUMBER1DW2008H

NUMBER2DW15DUP(2006H)

STRING1DB‘Howdoyoudo?

$’

BUFDB10HDUP(1,2DUP

(2))

DATAENDS

下面几条MOV指令单独执行后,目的寄存器CX中的内容发是什么?

(1)MOVCX,NUMBER1

(2)MOVCX,NUMBER2

(3)MOVCX,TYPENUMBER1

(4)MOVCX,TYPESTRING1

(5)MOVCX,LENGTHNUMBER2

(6)MOVCX,LENGTHSTRING1

(7)MOVCX,SIZENUMBER2

(8)MOVCX,SIZEBUF

4.2按下面的要求写出相应的数据定义语句。

(1)定义一个字节区域,第一个字节的值为20,其后跟20个初值为0的连续字节;

(2)定义一个以0为结束符的字符串,其初值为:

Thecourseiseasy;

(3)定义2008个字,其初值为任意值;

(4)定义一个双字变量,其初值为6571H。

4.3已知下列程序段:

DATASEGMENT

DB1DB12H,34H,0,56H

DW1DW78H,90H,0AB46H,1234H

ADR1DWDB1

ADR2DWDW1

BUFDB5DUP(0)

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

……

XORCX,CX

MOVCL,3

ADDADR1,CX

SUBADR2,CX

MOVBX,ADR1

MOVDI,BX

MOVSI,ADR2

MOVAL,DB1[BX]

MOVBUF[DI],AL

MOVAX,DW1[BX][SI]

MOVWORDPTRBUF,AX

……

CODEENDS

上述程序运行结束后,BUF中各字节单元的内容是什么?

4.4某数据段中有:

COUNT1EQU16H

COUNT2DW16H

下面两条指令有何异同?

MOVAX,COUNT1

MOVBX,COUNT2

4.5已知有下列3个等值语句:

N1EQU30

M2EQU87

P3EQU4

那么下列表达式的值各是多少?

(1)M2/N1+M2MODP3*2

(2)P3SHL4﹣2

(3)N1GTM2ANDP3LTM2(用8位二进制数表示)

(4)P3OR7

(5)N1XORP3

4.6假设数据段中有数据定义如下:

PARTNODW?

FNAMEDB16DUP(?

COUNTDD?

FLENGTHEQUCOUNT﹣FNAME

PLENGTHEQU$﹣PARTNO

那么经过汇编后,FLENGTH和PLENGTH的值是多少?

它们表示什么意义?

4.7假设程序中有以下的数据定义及传送指令,那么传送指令执行后各寄存器的内容分别是什么?

DATASEGMENT

ORG$+10H

BUF1DW1234H,5678H

BUF2DW‘AB’

BUF3DW20DUP(0)

DATAENDS

……

CONSTEQU2345H

MOVAL,LOWCONST

MOVAH,HIGHCONST

MOVBL,HIGH(OFFSETBUF1)

MOVBH,LOW(OFFSETBUF2)

MOVCL,LOW(OFFSETBUF3)

4.8已知有下列数据定义,根据这些数据定义完成规定的操作。

T1DB‘ABCDE’

T2DW1234H

T3DB20HDUP(?

(1)用一条MOV指令将T1的偏移地址放入DI中;

(2)用一条MOV指令将T2的段基址放入DS中;

(3)用一条MOV指令将T2的低地址单元中的内容放入DL中;

(4)用一条EQU伪指令使符号CONST的值等于数组变量T3所占的总字节数。

4.9已知有下列数据定义语句:

DA1DW‘AB’,‘CD’,‘EF’

DA2DW1234H,5678H

试用DB定义语句将它们改写成在存储器中完全相同的存储形式。

4.10已知有下列数据定义语句:

X1DB3,5

X2DW123,456

执行下列MOV指令后,各寄存器的值分别是多少?

(1)MOVAX,WORDPTRX1

(2)MOVBL,BYTEPTRX2

(3)MOVBH,X1+1

(4)MOVCX,X2+2

(5)MOVDL,BYTEPTRX2+1

(6)MOVDH,BYTEPTRX2+2

4.11下面各题中语句有语法错误,试分别用两种方法修改使它们在汇编时能够通过:

(1)M1DW5060H

……

MOVBL,M1

(2)M2EQU10H

……

MOVM2,AL

(3)M3DW‘ABCD’

(4)M4DB1234

(5)DATA1SEGMENT

DA1DW1234H

DATA1ENDS

DATA2SEGMENT

DA2DW5678H

DATA2ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA1

……

MOVBX,DA2

……

CODEENDS

4.12设已知数据段:

DATASEGMENT

DA1DBXX,XX

DA2DBXX,XX

ADRRDWDA1,DA2

DATAENDS

为使ADRR+2字存储单元中存放内容为0022H,上面的方框中应填写什么语句?

4.13下面的指令执行后,寄存器DS和SI的内容分别是多少?

ADDRDW1234H,5678H,0ABCDH

……

LDSSI,ADDR+1

4.14设某数据段为:

DATASEGMENT

ORG20H

NUM1=8

NUM2=NUM1+10H

DA1DB‘IBMPC’

DB0AH,0DH

CONTEQU$﹣DA1

DA2DW‘IB’,‘M’,‘PC’,0A0DH

DATAENDS

上述数据段定义后,DA1和DA2的偏移量、CONT的值和DA2+5字节单元的内容分别是多少?

4.15设某数据段为:

DATASEGMENT

ORG34H

NUM=

DA1DW10H,$+20H,30H,$+40H

DA2DWDA1+NUM+10H

DATAENDS

上述语句汇编后,$+20H和$+40H中的$分别是多少?

为使DA2字单元中的值为50H,等号语句NUM后的空白处应填什么?

4.16汇编语言源程序是如何装入CS、DS、SS和ES的?

4.17汇编语言源程序在运行结束后为什么要返回操作系统?

它们是如何返回的?

习题五

习题五

5.1程序的基本结构有_______、_______与_______三种。

5.2下面的程序段完执行后,AX,DX与BL的内容为多少?

MOVAX,6540H

MOVDX,3210H

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

5.3编写分支程序,在进行条件判断前,可用指令改变标志寄存器的某些位从而形成条件,下面的指令中不能形成条件的指令是_______。

(A)XOR(B)ADD

(C)TEST(D)MOV

5.4在语法正确的情况下,指令JMPFARPTRLABEL1属于_______。

(A)段内直接寻址(B)段内间接寻址

(C)段间直接寻址(D)段间间接寻址

5.5指令JMPBX转移的目标地址的偏移量为_______。

(A)IP+BX的内容(B)BX的内容

(C)BX所指向的存储单元的内容(D)IP-BX的内容

5.6下面的程序段条件转移语句发生跳转时,(AL)=________。

CMPAL,0FBH

JNLNEXT

(A)80H(B)8FH

(C)0F0H(D)0FFH

5.7设标识符DONE是程序中某指令语句的标号,与JMP指令同在一个逻辑段内,下列的哪个程序段不能够转移到标号DONE处的语句执行。

(A)JMPDONE

(B)MOVBX,OFFSETDONE

JMPBX

(C)MOVBX,DONE

JMPBX

(D)LEABX,DONE

JMPDONE

5.8下面的程序运行后,(AL)=_______,CF=_______。

MOVCL,8

MOVAL,0

NOTAL

ROLAL,CL

CMPAL,0FFH

JZNEXT

MOVAL,0

NEXT:

……

5.9在下面的程序段中,“DECCX”指令执行了_______次。

MOVCX,6

JCXZNEXT

L1:

DECCX

JNZL1

NEXT:

….

(A)0(B)5

(C)6(D)7

5.10试分三种情况说明,当NUM字节单元中数据是什么情况时,TEMP字节单元分别是多少?

NUMDB?

TEMPDB?

……

MOVAL,NUM

TESTAL,99H

JNERES

ANDAL,99H

JMPEND0

RES:

JSNE

INCAL

JMPEND0

NE:

DECAL

END0:

MOVTEMP,AL

……

5.11循环体包括哪几部分?

(A)初始化部分、工作部分、控制部分、修改部分、结束处理部分

(B)工作部分、修改部分、控制部分

(C)工作部分

(D)初始化部分、工作部分

5.12循环控制指令LOOPNZ的转移条件是_______。

(A)(CX)≠0并且ZF=0(B)(CX)≠0或者ZF=0

(C)(CX)=0并且ZF=0(D)(CX)≠0并且ZF=1

5.13下面的程序段执行后,BUF1的前5个字节单元内容分别是多少?

DATASEGMENT

DA1DW123H,456H,0AB00H

DA2DB12H,34H,56H,0ABH

DB$-DA2

BUF1DB10HDUP(1,2,3)

BUF2DB10H,20H,30H

DATAENDS

……

MOVSI,OFFSETDA1

MOVDI,OFFSETBUF1

MOVCX,5

LOP:

MOV

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

当前位置:首页 > 农林牧渔 > 林学

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

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