汇编语言第三版检测点

一:汇编语言第二版检测点10.3 为什么不是1012

……

S: POP AX ;AX = 0008

ADD AX, AX ;AX = 0010

POP BX ;BX = 1000

ADD AX, BX ;AX = 1010

RET----应该有这句

END

二:王爽 汇编语言 11.1检测点答案

sub al,al zf=1,pf=1,sf=0

mov al,1 zf=1,pf=1,sf=0

push ax zf=1,pf=1,sf=0

pop bx zf=1,pf=1,sf=0

add al,bl zf=0,pf=0,sf=0

add al,10 zf=0,pf=1,sf=0

mul al zf=0pf=1,sf=0

很久以前做的,不知道对不对,好长时间没看那本书了。我的是第二版!

三:王爽 汇编语言检测点3.1第一题

AX=2662,BX=D6E6,AX=2662,AX=2662,胆X=2ECC,AX=563E,AX=56F9

四:汇编语言 第2版 检测点3.2

去官网查 www.asmedu.net/bbs/forum.jsp

五:王爽汇编语言的检测点 12.1

8086系统在存储器的最低1KB区域(00000H~003FFH)建立一个中断向量表,存放256个中断类型的中断向量。这1024个单元被分成256组,每组包括4个字节单元,存储一个中断向量的段基址和段内偏移地址,高2个字节用於存放段基址,低两个字节用於存放段内偏移地址。

8086系统把中断向量表中的中断明确分为3个部份:

1.专用中断:类型号0~4(所以中断不是从1开始,而是0)

2.系统备用中断:类型号5~31H

3.用户中断:类型号32H~0FFH

检测点12.1分析:

计算中断服务入口地址的方法是:从内存地址为中断类型码*4和中断类型码*4+2的两个字单元中读取中断处理过程的入口地址设置IP和CS

0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00

段基址:偏移地址 0 1 2 3锭4 5 6 7 8 - 9 10 11 12 13 14 15(16个bytes,“-”为分隔符,每8个bytes分隔一次)

0号:00A7:1068

1号:0070:108B

2号:039D:0016

3号:0070:108B

3号:IP读取3*4=12的两个bytes就是12和13两个bytes,CS读取3*4+2=14的两个bytes就是14和15两个bytes。

希望能对你有所帮助!

六:关于王爽汇编语言检测点6.1的问题的答案解惑 5分

第一个程序:答案是可以的。

解释:我们在前边用dw 0,0,0,0,0,0,0,0,0,0,0只是申请了十个内存单元的空间,在后边将其指定为堆栈时并不一定要用完。多余的两个内存单元里边仍然存储着0,只不过不属于栈的范围;

第二个程序:程序运算过程是这样的:

因为在整个循环体执行过程中ss,ds寄存器中的数是不变的,只有sp和bx在变,也就是栈顶位置和内存单元指针DS:[bx]在变。所以我们只观察sp和bx的变化。

第一次循环:初始时(sp=36,bx=0;)

1.执行push(sp=sp-2=34,bx=0);

2.执行pop(sp=sp+2=36,bx=0);

3.执行add(sp=36,bx=2);

第二次循环:

1.执行push(sp=sp-2=34,bx=2);

2.执行pop(sp=sp+2=36,bx=2);

3.执行add(sp=36,bx=4);

所以此程序一会入栈一会出栈,栈顶就在SS:34和SS:36之间不断切换,只有寻址内存单元0:0~0:15单元的指针DS:[bx]在不断增长,直到访问至0:14结束。

七:关于王爽汇编语言检测点13.1(01),求正确答案及详细说明. 20分

楼主,我是这样想的:

按常理来说应该是16位的最大值FFFFH,因为这是一个内存字单元。但是书上说了:用bx储放转移位移,如果说(bx) = FFFFH的话,执行add [bp+2],bx时就会产生进位溢出,从而不能跳转到标号s处;因为原来ss:bp+2处的字型数据为offset se,因此有max( (bx) + offset se ) = FFFFH,从而有max(bx) = FFFFH - offset se。

我比较纠结的是,题里所说的“转移位移”到底是指bx还是指add [bp+2],bx后(即“模拟loop指令”的转移位移)的,所以有了上边的两种答案。

我也看了一些其他的答案,有说FFFFH的,这个还好明白些。不过最多的答案还是8000H~7FFFH 即(-32768~32767),这个我就想不通了(也不想多往这方面想)。

我说的并不一定是“真相”,但至少是我自己思考过的。

八:王爽《汇编语言》检测点9.3的一道题

2000:0段的内存为0B 0E 00 01时,当bx=2时,

mov cl,[bx]

mov 锭h,0

后,cx=0;执行inc cx和inc bx后,cx=1,bx=3,loop s语句执行后退出循环。接着执行OK标号处的程序。因bx比真正的偏移地址多加了1,故OK标号处先将bx减1再存储在DX中

九:汇编常识——王爽汇编2.3检测点

问共IP发生了几次变化?四次海

三条指令各一次,JMP 指令又更改了 IP,故为四次

最后IP值是多少? 0000H。

请问为什么?因为AX=0000H。

十:来自王爽《汇编语言》 检测点9.3的一道题:

没错的,

执行loop s时,首先要将(cx)减1。

“loop 标号”相当于

dec cx

if((cx)≠0) jmp short 标号

所以不能让CX保珐为0,用inc cx

扫一扫手机访问

发表评论