


- [tomato] 第二个改对了,第三个还不太对哦! 12/08 08:41
- [fish_u] 2、 assume cs:code code segment mov ax,0 12/07 17:48
- [tomato] 这就对了。要养成一个多试验求证结果的习惯。 11/26 23:16
- [fish_u] 学生错了,没有认真实验,比对编译后代码。 把mov ax,code改为mov ax,start后 11/26 11:29
- [tomato] 第一题是一个细小的问题,运行看不出,提示一下,对字节操作应该用8位寄存器,16位寄存器会覆盖其它内存 11/25 19:16
- [tomato] 计算机最忌讳的是懒了! 11/25 19:01
- [tomato] “1、不清楚对错 ”不清楚对错的可以实验一下啊! 11/25 19:00
- [fish_u] 运行没有发现什么问题啊? 11/25 13:27
- [tomato] 路过! 11/24 20:23
- [tomato] 是的。 11/24 20:22
[2012-04-21 14:24] 关于进制转换,补码,负数的表示
关于进制转换,补码,负数的表示...
阅读全文 |
评论次数(0) |
浏览次数(562) |
所属类型(监测点)
[2011-11-25 15:53] 第五章检测题 解析
1、在Intel8086环境下,对指令mov ax,[bx]描述错误的__4___。
1、 指令中,源操作数的段地址默认为ds中的内容
2、 指令中,源操作数的偏移地址为bx中的内容
3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
4、指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)
-------------------------------------------------------
解析:mov ax,[bx] 是把ds:[bx]中的内容给ax,...
1、 指令中,源操作数的段地址默认为ds中的内容
2、 指令中,源操作数的偏移地址为bx中的内容
3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)
4、指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)
-------------------------------------------------------
解析:mov ax,[bx] 是把ds:[bx]中的内容给ax,...
阅读全文 |
评论次数(4) |
浏览次数(948) |
所属类型(监测点)
[2011-11-15 21:06] 检测题第1单元
1、在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。正确的
解析:mov 指令不能设置CS、IP的值。在CPU执行的过程中是需要段地址的,没有跳转指令 可以说段地址是不变的。
2、传送指令能够更改所有通用寄存器的内容。正确的
书2.1中:AX,BX,CX,DX这4个寄存器用来存储一般的数据被称为通用寄存器。
而CS为代码段寄存器,IP为指令指针寄存器。
3、一条指令被执行后,IP的值进行改变。错误
一条指令被读取后,IP的值会改变,执行后不一定会改变。
4、CPU将CS:IP所指向的内存单元中的数据当作指令来执行 正确
...
解析:mov 指令不能设置CS、IP的值。在CPU执行的过程中是需要段地址的,没有跳转指令 可以说段地址是不变的。
2、传送指令能够更改所有通用寄存器的内容。正确的
书2.1中:AX,BX,CX,DX这4个寄存器用来存储一般的数据被称为通用寄存器。
而CS为代码段寄存器,IP为指令指针寄存器。
3、一条指令被执行后,IP的值进行改变。错误
一条指令被读取后,IP的值会改变,执行后不一定会改变。
4、CPU将CS:IP所指向的内存单元中的数据当作指令来执行 正确
...
阅读全文 |
评论次数(1) |
浏览次数(732) |
所属类型(监测点)
[2011-11-15 18:04] 检测题第3章
①、能够将ax中的内容送到内存0000:0200H处的指令序列是_4___。
1、 mov ds,0
mov bx,200h //DS 不可以直接赋值 MOV DS AX
mov [bx],ax
2、 mov ax,200h //2000:0
mov ds,ax
mov bx,0
mov [bx],ax
3、 mov ax,20h AX值修改了
mov ds,ax
mov bx,0
mov [bx],ax
4、 mov bx,20h...
1、 mov ds,0
mov bx,200h //DS 不可以直接赋值 MOV DS AX
mov [bx],ax
2、 mov ax,200h //2000:0
mov ds,ax
mov bx,0
mov [bx],ax
3、 mov ax,20h AX值修改了
mov ds,ax
mov bx,0
mov [bx],ax
4、 mov bx,20h...
阅读全文 |
评论次数(1) |
浏览次数(637) |
所属类型(监测点)
[2011-11-14 17:55] 检测点3.2
1.补全代码
MOV AX,1000
MOV DS,AX
---------------赋值DS=1000
MOV AX,2000
MOV SS,AX
--------------赋值 SS=2000,设置栈空间的段地址
MOV SP,0016
--------------赋值 SP=0016,原先设置的是0010,但是运行错误,可能是栈空间小了,加大6个后正常。(日后讨论)
PUSH [0]
--------------入栈操作,把DS=1000,[0]中的数据送入栈。
PUSH [2]
...
PUSH [E]
2、补全代码为
MOV ...
MOV AX,1000
MOV DS,AX
---------------赋值DS=1000
MOV AX,2000
MOV SS,AX
--------------赋值 SS=2000,设置栈空间的段地址
MOV SP,0016
--------------赋值 SP=0016,原先设置的是0010,但是运行错误,可能是栈空间小了,加大6个后正常。(日后讨论)
PUSH [0]
--------------入栈操作,把DS=1000,[0]中的数据送入栈。
PUSH [2]
...
PUSH [E]
2、补全代码为
MOV ...
阅读全文 |
评论次数(5) |
浏览次数(289) |
所属类型(监测点)
[2011-11-11 14:25] 问题3.10 mov sp,2 自动退出DEBUG
问题3.10
补全代码
MOV AX,1000
MOV SS,AX
MOV SP,2
MOV AX,2266
PUSH AX
在DEBUG中执行的时候,执行到 MOV SP,2就会自动退出。这是什么原因呢?
栈空间设小了,
当在DEBUG中使用T命令的时候,T命令会向当前栈保存数据,以备恢复CPU现场。空间不够大,所以会出错。具体需要看完后开能理解。
当把MOV sp,2 改为mov sp,6 时 没有出现错误。...
补全代码
MOV AX,1000
MOV SS,AX
MOV SP,2
MOV AX,2266
PUSH AX
在DEBUG中执行的时候,执行到 MOV SP,2就会自动退出。这是什么原因呢?
栈空间设小了,
当在DEBUG中使用T命令的时候,T命令会向当前栈保存数据,以备恢复CPU现场。空间不够大,所以会出错。具体需要看完后开能理解。
当把MOV sp,2 改为mov sp,6 时 没有出现错误。...
阅读全文 |
评论次数(1) |
浏览次数(253) |
所属类型(监测点)
[2011-11-10 16:03] 监测点3.1 答案解析
1、主要是看DS
MOV AX,1
MOV DS,AX
这两个命令设置DS=1
MOV AX,[0000]
把偏移地址为0,段地址为1的字内存单元(CS:IP=0001:0000 也就是字内存单元00010中)内容给AX,根据字形内存单元高低相对的传送原则,AH=26,AL=62,AX=2662H
MOV BX,[0001] 原理同上,BH=E6,BL=26,BX=E626H
MOV AX,BX AX=E626
MOV AX,[0000] AX=2662H
MOV BX,[0002] BH=D6,BL=E6, BX=D6E6
ADD AX,BX AX=2662H...
MOV AX,1
MOV DS,AX
这两个命令设置DS=1
MOV AX,[0000]
把偏移地址为0,段地址为1的字内存单元(CS:IP=0001:0000 也就是字内存单元00010中)内容给AX,根据字形内存单元高低相对的传送原则,AH=26,AL=62,AX=2662H
MOV BX,[0001] 原理同上,BH=E6,BL=26,BX=E626H
MOV AX,BX AX=E626
MOV AX,[0000] AX=2662H
MOV BX,[0002] BH=D6,BL=E6, BX=D6E6
ADD AX,BX AX=2662H...
阅读全文 |
评论次数(1) |
浏览次数(246) |
所属类型(监测点)
[2011-11-06 15:53] 监测点2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
解析:若ax,bx,值为0。sc:ip=1000:0
则mov ax,bx ip=ip+2=0002
sub ax,ax ip=ip+2=0004
jmp ax ip=0
所以CPU一共3次修改IP,最后IP中的值为0.
修改
8086CPU简要工作过程:
1 从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲区
2 IP=IP+所读取指令的长度,从而指向下一条指令 ...
mov ax,bx
sub ax,ax
jmp ax
解析:若ax,bx,值为0。sc:ip=1000:0
则mov ax,bx ip=ip+2=0002
sub ax,ax ip=ip+2=0004
jmp ax ip=0
所以CPU一共3次修改IP,最后IP中的值为0.
修改
8086CPU简要工作过程:
1 从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲区
2 IP=IP+所读取指令的长度,从而指向下一条指令 ...
阅读全文 |
评论次数(2) |
浏览次数(630) |
所属类型(监测点)
[2011-10-31 16:46] 监测点2.2
1、给定地址段为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为(00010H)到(1000FH)。
解析:给定一个段地址,仅通过变化偏移地址来进行寻址,变化范围是0-FFFFH。
0001H*16+0=00010H
0001H*16+FFFFH=1000FH
2、有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为(1001H),最大为(2000H)。
解析:段地址SA和偏移地址EA满足SA*16+EA=物理地址
SA*16+EA=20000H.
SA*16=20000H-E...
解析:给定一个段地址,仅通过变化偏移地址来进行寻址,变化范围是0-FFFFH。
0001H*16+0=00010H
0001H*16+FFFFH=1000FH
2、有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为(1001H),最大为(2000H)。
解析:段地址SA和偏移地址EA满足SA*16+EA=物理地址
SA*16+EA=20000H.
SA*16=20000H-E...
阅读全文 |
评论次数(4) |
浏览次数(373) |
所属类型(监测点)
[2011-10-30 16:12] 检测点2.1
1、写出每条汇编指令执行后相关寄存器中的值。
MOV AX,62627 AX=F4A3H
MOV AH,31H AX=31A3H
MOV AL,23H AX=3123H
ADD AX,AX AX=6246H
MOV BX,826CH BX=826CH
MOV CX,AX CX=6246H
MOV AX,BX AX=826CH
ADD AX,BX ...
MOV AX,62627 AX=F4A3H
MOV AH,31H AX=31A3H
MOV AL,23H AX=3123H
ADD AX,AX AX=6246H
MOV BX,826CH BX=826CH
MOV CX,AX CX=6246H
MOV AX,BX AX=826CH
ADD AX,BX ...
阅读全文 |
评论次数(5) |
浏览次数(336) |
所属类型(监测点)