汇编语言离线作业1答案及点评 下载本文

内容发布更新时间 : 2024/5/24 1:17:58星期一 下面是文章的全部内容请认真阅读。

离线作业1答案及点评

1.10、数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符?

请看教科书的P7的标准ASCII码及其字符

答案:数码0~9:30H~39H, 大写字母A~Z:41H~5AH, a~z:61H~7AH 0DH:回车,0AH:换行

1.11、计算机中有一个“0110 0001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?

无符号数:61H=97十六进制数转换为十进制数方法6乘16加1=97 BCD码:61四位二进制表示一位BCD码

ASCII码:61H为小写字母a可以查ASCII表

答案:无符号数十进制:97,BCD码:61,ASCII码:a

1.19、什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达:

(1)FFFFH:0 (2)40H:17H (3)2000H:4500H (4)B821H:4567H

答案:?对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从

00000H~FFFFFH

?在8086内部和用户编程时,采用的段基地址 : 段内偏移地址形式称为逻辑地址?将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址

(1) FFFFH:0=FFFF0H (2) 40H:17H=00417H (3) 2000H:4500H=24500H

(4) B821H:4567H=BC777H (不要算错)

1.20、8086有哪4种逻辑段,各种逻辑段分别是什么用途?

答案:?代码段(Code Segment)用来存放程序的指令序列。处理器利用CS : IP

取得下一条要执行的指令

?堆栈段(Stack Segment)确定堆栈所在的主存区域。处理器利用SS : SP操作堆栈中的数据 ?数据段(Data Segment)存放当前运行程序所用的数据。处理器利用DS : EA存取数据段中的数据

?附加段(Extra Segment)是附加的数据段,也用于数据的保存。处理器利用ES : EA存取数据段中的数据

1.24、说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。 (1) MOV DX,[1234H] (2) MOV DX,1234H (3) MOV DX,BX (4) MOV DX,[BX]

(5) MOV DX,[BX+1234H] (6) MOV DX,[BX+DI]

(7) MOV DX,[BX+DI+1234H]

(1)直接寻址[XXXXH],有效地址EA=1234H (2)立即数寻址,操作数1234H,DX=1234H

(3)寄存器寻址,操作数在DX中,数据在DX=2000H (4)间接寻址,有效地址在BX中,EA=2000H

(5)相对寻址,有效地址等于BX加1234H,EA=3234H (6)基址变址寻址,有效地址等于BX加DI,EA=2040H

(7)相对基址变址寻址,有效地址等于BX加DI加1234H, EA=3274H 2.1、已知DS = 2000H、BX = 0100H、SI = 0002H,存储单元[20100H] ~ [20103H]依次存放12 34 56 78H,[21200H] ~ [21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。 (1) MOV AX,1200H (2) MOV AX,BX

(3) MOV AX,[1200H] (4) MOV AX,[BX]

(5) MOV AX,[BX+1100H] (6) MOV AX,[BX+SI]

(7) MOV AX,[BX][SI+1100H]

(1)操作数 1200H,AX=1200H

(2)操作数在BX中,AX=BX=0100H

(3)有效地址1200H,物理地址DS*16+1200H=20000H+1200H=21200H,AX=4C2AH

存储内容21200H=2AH, 21201H=4CH,AH对应高字节4CH,AL对应低字节2AH (4)有效地址在BX中,为0100H,物理地址=2000H*16+0100H=20100H, AX=3412H

操作数在20100H,字数据为3412H,AX=3412H (5)有效地址在BX+1100H中,为1200H,物理地址=2000H*16+1200H=21200H, 21200H内容为字数据4C2AH,AX=4C2AH

(6)有效地址在BX+SI中,为0102H,物理地址=2000H*16+0102H=20102H, 20102H内容为字数据7856H, AX=7856H

(7)有效地址在BX+SI+1100H中,为1202H,物理地址=2000H*16+0102H=21202H, 21202H内容为字数据65B7H, AX=65B7H

2.6、给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态: 1.MOV AL,89H ;AL=89H,CF,ZF,SF,OF,PF

2.ADD AL,AL ;AL=89H+89H=12H,有进位故CF=1, ZF=0,SF=0,负数相加和为正数,溢出OF=1,1的个数2偶数PF=1 3.ADD AL,9DH ;AL=9DH+12H=AFH置标志位CF=0,ZF=0,最高位1,SF=1,溢出OF=0,1的个数6偶数PF=1

4.CMP AL,0BCH ;AFH-0BCH=F3H置标志位 有借位CF=1,ZF=0,最高位1SF=1,溢出OF=0,1的个数6偶数PF=1

5.SUB AL,AL ;AL-AL=0 置标志位CF=0,结果0,ZF=1,SF=0,溢出OF=0,1的个数0偶数PF=1

6.DEC AL;0—1=FFH.系统规定DEC指令不影响CF影响其他状态标志,故CF不变仍为0, ;结果非0,ZF=0,最高位1故SF=1,OF=0,,1的个数8偶数PF=1

7.INC AL;FFH+1=00H有进位,但是INC指令不影响进位标志,影响其他状态标志;CF=0,结果0故ZF=1,最高位0故SF=0,无溢出故OF=0,1的个数0偶数故PF=1

1.AL=89H CF ZF SF OF PF 2.AL=12H 1 0 0 1 1 3.AL=0AFH 0 0 1 0 1 4.AL=0AFH 1 0 1 0 1 5.AL=00H 0 1 0 0 1 6.AL=0FFH 0 0 1 0 1 7.AL=00H 0 1 0 0 1

2.8、请分别用一条汇编语言指令完成如下功能:

(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。 (2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。

(3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。

(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。

(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。

(1)ADD DX,BX ;DX是目的寄存器

(2)ADD AL,[BX+SI] ;AL是目的寄存器,源操作数的地址在BX+SI中 (3)ADD [BX+0B2H],CX;目的地址在寄存器相对寻址方式BX+0B2H中, (4)ADD WORD PTR [0520H],3412H ;目的地址直接寻址方式0520H中,为明确0520H为字地址故用伪指令类型操作符PTR进行字类型WORD的设置 (5)ADD AL,0A0H;结果操作数为AL,源操作数A0H字母开头加前导0