(5)
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:mov ax,a //得到a段地址
mov ds,ax
mov ax,b //得到b段地址
mov es,ax
mov cx,8 ...


- [tinyparticle] 正确 10/18 15:28
- [tinyparticle] 正确 10/18 15:27
- [mywiil] 回答没问题。 08/25 08:55
- [mywiil] 回答没问题。 08/25 08:31
- [younggay] 回答正确。 08/18 10:19
- [mess] 答案正确,还有自己的分析,博主继续加油啊^_^ 08/17 10:38
- [mywiil] 前两次的描述不是很完全,应该也说明是在“读入的时候”修改的IP。 最后的结论是正确的。 08/17 09:28
- [tinyparticle] 正确 08/09 22:18
[2009-10-25 20:11] 第六章实验(5)、(6)
阅读全文 |
评论次数(0) |
浏览次数(168) |
所属类型(汇编作业)
[2009-10-25 09:50] 第六章实验5(4)
如果将1.2.3题中的最后一条伪指令"end start"改为"end"(也就是说,不指明程序的入口),则那个程序依然可以正确执行?
第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动默认从第一行进行编译执行源程序...
第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动默认从第一行进行编译执行源程序...
阅读全文 |
评论次数(0) |
浏览次数(226) |
所属类型(汇编作业)
[2009-10-24 22:25] 第六章实验5(3)
(1)CPU执行程序,程序返回前,data段中的数据不变。
(2)CPU执行程序,程序返回前,CS=13C0 SS=13C0 DS=13B0
(3)设程序加载后,code段的段地址为X,则DATA段的段地址为:X+3
STACK地址为X+4。...
(2)CPU执行程序,程序返回前,CS=13C0 SS=13C0 DS=13B0
(3)设程序加载后,code段的段地址为X,则DATA段的段地址为:X+3
STACK地址为X+4。...
阅读全文 |
评论次数(0) |
浏览次数(219) |
所属类型(汇编作业)
[2009-10-24 20:34] 第六章 实验5(2)
(1)CPU执行程序,程序返回前,DATA段中数据为不变。
(2)CPU执行程序,程序返回前,cs=13c2 ss=13c0 ds=13b0
(3)设程序加载后,CODE段的段地址为X,则DATA段的段地址为X-2,stack段的段地址为X-1,(ds=data ss=stack cs=code)
(4)对于如下定义的段:name segment
.....
name ends
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为:(N/16+1)*16 (一个段最小为16字节,而且是16字节的...
(2)CPU执行程序,程序返回前,cs=13c2 ss=13c0 ds=13b0
(3)设程序加载后,CODE段的段地址为X,则DATA段的段地址为X-2,stack段的段地址为X-1,(ds=data ss=stack cs=code)
(4)对于如下定义的段:name segment
.....
name ends
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为:(N/16+1)*16 (一个段最小为16字节,而且是16字节的...
阅读全文 |
评论次数(0) |
浏览次数(211) |
所属类型(汇编作业)
[2009-10-18 15:01] 第六章检测点6.1(2)
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0
start:mov ax,cs
mov ss,ax
mov sp,1ah
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:push [bx]
pop cs:[bx]
add bx,2
loop s
m...
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0
start:mov ax,cs
mov ss,ax
mov sp,1ah
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:push [bx]
pop cs:[bx]
add bx,2
loop s
m...
阅读全文 |
评论次数(1) |
浏览次数(237) |
所属类型(汇编作业)
[2009-10-16 21:46] 第六章检测点6.1(1)
assume sc:codesg
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
start: mov ax,0
mov ds,ax ax作中转,将ds指向0
mov bx,0 bx设为0 ds:bx即指向0:0
mov cx,8 cx设为8,循环8次改写8个内容
s: mov ax,[bx] ds:[bx]处的内容放到ax寄存器中
mov cs:[bx],ax bx现在为0,cs:0...
codesg segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
start: mov ax,0
mov ds,ax ax作中转,将ds指向0
mov bx,0 bx设为0 ds:bx即指向0:0
mov cx,8 cx设为8,循环8次改写8个内容
s: mov ax,[bx] ds:[bx]处的内容放到ax寄存器中
mov cs:[bx],ax bx现在为0,cs:0...
阅读全文 |
评论次数(1) |
浏览次数(198) |
所属类型(汇编作业)
[2009-08-23 16:32] 第三章检测点3.1(2)
(1)写出CPU执行的指令序列(用汇编指令写出)
mov ax,6622H
jmp 0ff0:0100 (mov cs,0ff0 mov ip,0100)
mov ax,2000H
mov ds,ax
mov ax,[0008]
mov ax,[0002]
(2)写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。
mov ax,6622H ax=6622H ds=1000H cs=2000H IP=0003
jmp 0ff0:0100 ax=6622H ds=1000H cs=1000H IP=0000
mov ax,2000H ax=2000H ds...
mov ax,6622H
jmp 0ff0:0100 (mov cs,0ff0 mov ip,0100)
mov ax,2000H
mov ds,ax
mov ax,[0008]
mov ax,[0002]
(2)写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。
mov ax,6622H ax=6622H ds=1000H cs=2000H IP=0003
jmp 0ff0:0100 ax=6622H ds=1000H cs=1000H IP=0000
mov ax,2000H ax=2000H ds...
阅读全文 |
评论次数(1) |
浏览次数(265) |
所属类型(汇编作业)
[2009-08-22 18:26] 第三章检测点3.1(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 ax=1
mov ds,ax ds=1
mov ax,[0000] ax=2662 (mov ax,1 mov ds,ax 之后,ds的值为1.此时数...
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 ax=1
mov ds,ax ds=1
mov ax,[0000] ax=2662 (mov ax,1 mov ds,ax 之后,ds的值为1.此时数...
阅读全文 |
评论次数(1) |
浏览次数(251) |
所属类型(汇编作业)
[2009-08-16 16:44] 第二章检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx 第一次修改IP
sub ax,ax 第二次修改IP(sub,ax,ax==ax=ax-ax)
jmp ax 读入时第三次修改IP执行后第四次修改IP.
最后IP的值是0....
mov ax,bx 第一次修改IP
sub ax,ax 第二次修改IP(sub,ax,ax==ax=ax-ax)
jmp ax 读入时第三次修改IP执行后第四次修改IP.
最后IP的值是0....
阅读全文 |
评论次数(1) |
浏览次数(224) |
所属类型(汇编作业)
[2009-08-14 11:54] 第二章检测点2.2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH.
物理地址=段地址*16(16是十进制,它的十六进制就是10H)+偏移地址
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为:1001H 最为:2000H
(最小:SA应满足的最小值为(20000H—ffffH)/16=10001H不行.但是SA*16最后那位一定是0这样10001肯定是不对了那要是想让最后一位是0的话只能是偏移地址最后一位是0所应该是FFF0H )...
物理地址=段地址*16(16是十进制,它的十六进制就是10H)+偏移地址
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为:1001H 最为:2000H
(最小:SA应满足的最小值为(20000H—ffffH)/16=10001H不行.但是SA*16最后那位一定是0这样10001肯定是不对了那要是想让最后一位是0的话只能是偏移地址最后一位是0所应该是FFF0H )...
阅读全文 |
评论次数(1) |
浏览次数(296) |
所属类型(汇编作业)