汇编语言答案(王爽版)

 

王爽汇编语言答案(本答案是自己做的 所有题目已在deubg中调试;但难免有差错,发现的提醒我 email:[email protected]  谢谢)

第一章

检测点1.1

1) 13

(2) 1024,0,1023

(3) 8192,1024

(4) 2^30,2^20,2^10

(5) 64,1,16,4

(6) 1,1,2,2,4

(7) 512,256

(8) 二进制 

注:符号'^'指求幂运算(如: 2^30指2的30次方)

第二章

检测点2.1

(1)大家做这题的时候一定要注意,要看清楚数制,比如是二进制还是十进制,还是十六进,我当时没注意,做错了!!呵呵!!

第一空:F4A3H

第二空:31A3H

第三空:3123H

第四空:6246H

第五空:826CH

第六空:6246H

第七空:826CH

第八空:04D8H

第九空:0482H

第十空:6C82H

第十一空:D882H

第十二空:D888H

第十三空:D810H

第十四空:6246H

(2)

mov ax,2

add ax,ax

add ax,ax

add ax,ax

检测点2.2

(1)00010H 1000fH

(2)0001H  2000H

检测点2.3

共修改了4次ip 第一次mov ax,bx 第二次是sub ax,ax 第三次是jmp ax 第四次是执行 jmp ax 最后ip的值是0 因为ax的值是零!!

检测点3.1

(1)

第一空:2662H

第二空:E626H

第三空:E626H

第四空:2662H

第五空:D6E6H

第六空:FD48H

第七空:2C14H

第八空:0000H

第九空:00E6H

第十空:0000H

第十一空:0026H

第十二空:000CH

注意:ax中存取的是字型数据 ,高地址存放高字节,低地址存放低字节!!(一定要小心)

(2)

写出cpu的执行序列 

Mov  ax,6622

Jmp 0ff0:0100

Mov ax,2000H

Mov ds,ax

Mov ax ,[0008]

Mov ax,[0002]

指令执行顺序

寄存器

CS

IP

DS

AX

BX

初值 

2000H

0000

1000H

0

0

mov ax,6622h

2000H

0003

1000H

6622H

0000

jmp 0ff0:0100

1000h

0000

1000H

6622H

0000

mov ax,2000h

1000H

0003

1000H

2000H

0000

mov ds,ax

1000H

0005

2000H

2000H

0000

mov ax,[0008]

1000H

0008

2000H

C389H

0000

mov ax,[0002]

1000H

000B

2000H

EA66H

0000

数据和程序在计算机中都是以二进制的形式存放的,在区别程序和数据时,关键是看段地址,如果段地址是ds段,说明该内存中存放的是数据,如果段地址是cs段,说明该内存中存放的是程序指令 

检测点3.2

(1)

Mov ax,2000H

Mov ss,ax

Mov sp,0010H

(2)

Mov ax,1000H

Mov ss,ax

Mov sp,0000H

注意:出栈时和入栈时的顺序,空栈时栈顶指向的是最高端地址!栈满是栈顶指针指向的是最底端地址!!

2。实验任务

(1)

5BEA

5CCA 

30F0

6023

00FE   2200:0100   5CCA

00FC   2200:00FE   6023

00FE   6023

0100   5CCA 

00FE   2200:0100   30F0

00FC   22000:00FC  2E39 

(2)

 因为在DEBUG 中T命令在执行修改寄存器ss的指令时,会产生中断,将现场保护起来,下一条指令也紧接着被执行!!

实验三:

该实验自己做吧 我做出来的东西只是我pc上的数据,可能在别的pc做出来的结果会不一样,在加之数据太多,我做了两次数据都没有完整的记下来,只好作罢!!

实验四: [bx]和loop的使用

(1)

assume cs:code 

code segment

    mov ax,0

    mov ds,ax

    mov cx,64

    mov bx,200h

  s:

    mov ds:[bx],ax

    inc bx

    inc ax

loop s

    mov ax,4c00H

    int 21h

code ends

End

(2)如上题  我一不小心写出来就是九条指令了!!!呵呵!!

(3)具体做法是将那段指令写道内存中,察看其在内存中的起始地址和终止地址,然后将该内存的内容复制到0:200处就可以了!!

检测点6.1

(1)

Mov cs:[dx],ax

(2)

第一空:cs

第二空:26或者1ah

第三空:pop cs:[dx]

你可能感兴趣的:(汇编语言答案(王爽版))