8086汇编语言习题解答.docx

上传人:b****3 文档编号:3143287 上传时间:2022-11-18 格式:DOCX 页数:14 大小:26.60KB
下载 相关 举报
8086汇编语言习题解答.docx_第1页
第1页 / 共14页
8086汇编语言习题解答.docx_第2页
第2页 / 共14页
8086汇编语言习题解答.docx_第3页
第3页 / 共14页
8086汇编语言习题解答.docx_第4页
第4页 / 共14页
8086汇编语言习题解答.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

8086汇编语言习题解答.docx

《8086汇编语言习题解答.docx》由会员分享,可在线阅读,更多相关《8086汇编语言习题解答.docx(14页珍藏版)》请在冰豆网上搜索。

8086汇编语言习题解答.docx

8086汇编语言习题解答

8086/8088汇编语言习题解答

第一章

1.1、试根据自己使用计算机的经历,列举几个必须使用或最好是使用汇编语言编制程序的事例。

1.2、试完成下列数制间的转换

⑴、十进制数转换为8位二进制数

十进制:

100对应二进制:

01100100B

十进制:

56对应二进制:

00111000B

十进制:

111对应二进制:

01101111B

十进制:

120对应二进制:

01111000B

十进制:

70对应二进制:

01000110B

⑵、8位二进制数(无符号数)转换为十进制数

二进制:

01010101B对应十进制:

85

二进制:

10101010B对应十进制:

170

二进制:

11110000B对应十进制:

240

二进制:

00001111B对应十进制:

15

⑶、十进制数转换为十六进制数

十进制:

40对应二进制:

00101000B

十进制:

80对应二进制:

01010000B

十进制:

105对应二进制:

01101001B

十进制:

114对应二进制:

01101101B

十进制:

207对应二进制:

11001111B

1.3、试把下面用补码表示的二进制数转换为对应的十进制真值

二进制补码:

01111000对应的十进制值数真值:

+120

二进制补码:

11011001对应的十进制值数真值:

-39

二进制补码:

10000001对应的十进制值数真值:

-127

二进制补码:

10001000对应的十进制值数真值:

-120

二进制补码:

00100111对应的十进制值数真值:

+39

二进制补码:

11110000对应的十进制值数真值:

-16

1.4、由键盘输入字符通常都是以该字符的ASCII码形式表示的。

若现在从键盘上输入十六进制数0~F,那么应如何处理才能把十六进制转换为4位二进制数0000~1111.

答:

将键盘输入的数0~F的ASCII码,每输入一个字符,减去30H后,再存入内存,这样就完成了把从键盘上输入的十六进制ASCII码转换为4位二进制数0000~1111.

1.5、试分别判断下列各组数据中哪个数据最大?

哪个最小?

①、A=0.101BB=0,101DC=0,101H

②、A=1011BB=1011DC=1011H

答:

第①组:

A=1×2

+1×2

=0.625

B=0.101

C=1×16

+16

=0.0625+0.00024414=0.06274414

所以A最大,C最小

  第②组,B最大,A=B最小

1.6、现有一个二进制数10110110.若将该数看着是无符号数、原码表示的带符号数、补码表示的带符号数,它对应的十进制数的真值是多少?

答:

10110110.的无符号数的十进制是:

+182;

10110110.的原码带符号数的十进制是:

-54

10110110.补码表示的带符号数的十进制是:

+74

1.7、下列各组数据均为十进制数,先将各数据转换为补码表示的带符号数,然后用补码的加减运算分别完成下列各小题,并用十六进制数形式回答运算结果。

①、58+36②、(-58)+36③、58+(-36)④、(-58)+(-36)⑤、58-36⑥、(-58)-36⑦、58-(-36)⑧、(-58)-(-36)

答:

①、58+36的运算结果是:

00111010+00010100=01001110=01011110

②、(-58)+36的运算结果是:

11000110+00010100=11101010=-000101001

③、58+(-36)的运算结果是:

00111010+11011100=00010110

④、(-58)+(-36)的运算结果是:

11000110+10100010=10100010

⑤、58-36的运算结果是:

00111010+11011100=00010110

⑥、(-58)-36的运算结果是:

11000110+10100010=10100010

⑦、58-(-36)的运算结果是:

00111010+00010100=01001110=01011110

⑧、(-58)-(-36)的运算结果是:

11000110+00010100=11101010=-000101001

第二章

2.1、试说明8086/8088CPU中有哪些寄存器?

各有什么用途?

答:

寄存器AX、AL:

在乘法指令中,存放乘数和乘积;

在除法指令中,存放被除数和商;

在未组合BCD码运算的校正指令中

在某些串操作指令(LODS,STOS,SCAS)中

在输入输出令中作数据寄存器

寄存器AH:

在LAHF指令中作目的寄存器

寄存器AL:

在组合型BCD码的加减法校正指令中

在XLAT指令中作目的寄存器

寄存器BX:

在XLAT指令中基址寄存器

寄存器CX:

在循环指令中作循环次数计数器

寄存器CL:

在移位指令中作移位次数计数器

寄存器DX:

在字数据的乘法和除法指令中辅助累加器

寄存器SP:

在堆栈操作中作堆栈指计

寄存器SI:

在串操作指令中作源变址寄存器

寄存器DI:

在串操作指令中作目的变址寄存器

2.2、试说明8086/8088CPU中标志寄存器各标志位的意义?

答:

8086/8088CPU中标志寄存器各标志位的意义是:

CF:

进位标志PF:

奇遇标志

AF:

辅助进位标志ZF:

零值标志

SF:

符号位标志TF:

单步标志

IF:

中断允许标志DF:

方向标志

OF:

溢出标志

2.3、哪些操作只能隐含使用某个段寄存器,而不能用其他寄存器替代?

哪些操作除隐含使用某个段寄存器外,还可以用其他段寄存器替代?

答:

在“取指令”、“堆栈操作”、“存目的串”三操作时,只能分别使用隐含段寄存器“CS”、“SS”“ES”,不能用其他寄存器替代;

在“取源串”、“以BP作基址”、“存取一般变量”三操作时,除了可分别使用隐含段寄存器“DS”、“SS”“DS外,还可分别使用“CS、SS、ES”,

“CS、DS、ES”、“CS、SS、ES”等进行替代。

2.4、8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由哪两部分组成?

答:

在8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由段基值和偏移量两部分组成,它们都是16位无符号二进制数。

2.5、设IBMPC微机内存某一单元的物理地址是12345H,试完成下列不同的逻辑地址表示:

①、1234H:

0005_H;EA=段基值+DISP=12340H+0005H=12345H

②、1200H:

0345H;EA=段基值+DISP=12000H+0345H=12345H

2.6、假设某用户程序装入内存后,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部(字单元)物理地址是是多少?

2.7、设堆栈段寄存器(SS)=3E4BH,程序中设置堆栈长度为200个字节。

试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。

2.8、设某用户程序(SP)=30H,(AX)=1234H,(DS)=5678H。

如现有两条指令:

PUSHAX

PUSHDS

试问两条指令执行后,图2.18中各单元的数据是多少?

(SP)=?

答:

(SP)=30H-4H=2CH

2.9、在IBM-PC微机上,分别进行下列8位二进制数的运算后,标志寄存器中OF、ZF、SF、CF的值各是多少?

①、10101011+01010101②、11011010+11101101

③、01010101-00111110④、10110011-01100010

2.10、设(SP)=50H

PUSHAX

PUSHBX

PUSHCX

执行上述三条指令后,(SP)=44H。

2.11、设(SP)=6EH

POPF

 POPAX

执行上述两条指令后,(SP)=72H。

第三章

3.1、试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:

①、ANDAX,0FFH;立即数寻址

②、ANDBL,[0FFH];直接寻址

③、MOVDS,AX;寄存器寻址

④、CMP[SI],CX;寄存器间接寻址

⑤、MOVDS:

[0FFH],CL;带前缀的直接寻址

⑥、SUB[BP][SI],AH;基址变址寻址

⑦、ADCAX,0ABH[BX];基址寻址

⑧、ORAX,-35[BX][DI];基址变址寻址

⑨、PUSHDS;寄存器寻址

⑩、CMC;立即数寻址

3.2、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。

①、MOV[BX][BP],AX;错,BX与BP必须二选一

②、TEST[BP],BL;正确

③、ADD[SI],DA_BYTE;错,源目操作数不能同时为存储器

④、ANDDH,DL;错,同一寄存器高、低字节不能与

⑤、CMPCL,1234H;正确

⑥、SHR[BX][DI],3;正确

⑦、NOTCX,AX;错,NOT指令只有一个操作数

⑧、LEADS,35[SI];正确

⑨、INCCX,1;正确

⑩、PUSH45[DI];正确

3.3、下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态?

MOVDL,,86

ADDDL,0AAH

答:

以上两条指令执行后:

CF=

AF=

ZF=

SF=

OF=

3.4、在8086/8088CPU中可用于作地址指针的寄存器有哪些?

答:

3.5、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H

(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,单元(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH下各指标令或程序段分别执行后的结果如何?

①、MOVCL,20H[DI][SI]

②、MOV[BP][DI],CX

③、LEABX,20H[BX][SI]

MOVAX,2[BX]

④、LDSSI,[BX][DI]

MOV[SI],BX

⑤、XCHGCX,32H[BX]

XCHGAX,[SI]

 

3.6、已知(SS)=0915H,(DS)=0930H,(SI)=0A0H,

(DI)=1C0H,(BX)80H,(BP)=470H.现有一指令

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

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

LEASI,[SI]

MOVAX,[SI]

MOV[SI+22H],1200H

LDSSI,[SI+20H]

ADDAX,[SI]

上述程序执行后:

(DS)=,(SI)=(AX)=

3.8、已知(AX)=0A5C6H,(CX)=0F03H,CF=1

RCLAX,CL

ANDAH,CH

RCRAX,CL

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

当前位置:首页 > 高等教育 > 艺术

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

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