1、检测题 3.1
(1) 在debug中,用“d 0:0 1f" 查看内存,看如下
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0 BX=0 ,写出每条指令执行完后的相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] ax=2662H
mov bx,[0001] bx=e626H
mov ax,bx ax=e626H
mov ax,[0000] ax=2662H
mov bx,[0002] bx=d6e6H
add ax,bx ax=FD48H
add ax,[0004] ax=2c14H
mov ax,0 ax=0
mov al,[0002] ax=00E6H
mov bx,0 bx=0
mov bl,[000c] bx=0026H
add al,bl ax=000CH
(2) 内存中的情况如图3.6所示。
各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0 BX=0;
mov ax,6622H ----ax=6622h ip=0003 ds=1000H bx=0
jmp 0ff0:0100 ---- ax=6622H ip=0100 cs=0ff0 ds=1000 bx=0
mov ax,2000H ---- ax=2000H ip=0103 CS=0ff0 DS=1000H BX=0
mov ds,ax ---- ax=2000H ip=0105 cs=0ff0 DS=2000H bx=0
mov ax,[0008] ---- ax=c389H ip=0108 cs=0ff0 ds=2000h bx=0
mov ax,[0002] --- ax=ea66H ip=010B ,, ,, ,,
数据与程序都是机器码,确定内存中的机器码是数据还是程序,这取决于物理地址指向的寄存器:cs:ip cpu指的是程序,DS:IP 数据。
- [chinatree] 对于双重循环取决于LOOP的位置?怎么说呢? 09/29 15:27
- [rotapple] 哦。是edit啊。晕。我以为这个UI界面是你写出来的。 08/25 18:32
- [rotapple] 这是什么书来的?第四章有这东西吗? 我怎么没见过。 08/25 18:30
- [rotapple] 发多张图是这样的。 你先要把图传到某个地方,比如百度空间。 然后再用[img]地址[/img]这 08/25 18:29
- [rotapple] ;这里为什么不是3F呢,因为3F-3F就等于0,loop就停止了。 你问了好多这个。 0-63 08/25 18:25
- [chinatree] 哪个题呀? 08/25 17:29
- [ameteur] 我试着用mov cx,[5],第一次程序可以成功执行,第二次就不行了。 08/25 17:07
- [ameteur] 我知道,但有一个问题,它是从mov ax,4c00H 前的复制,而不是整个,我可以用 sub cx, 08/25 17:05
- [chinatree] 第一个不用dl试试。 第二个可以不用 mov cx,0016h ,因为当程序加载好cx保存的就是 08/23 18:18
- [chinatree] 在多少页呀,起码最上一行和最下一行我就不知道怎么显示的 08/18 11:51
- [scuzg] 我是scuzg,QQ号是914933602,有空联络、讨论哈! 10/10 22:45