实验5 编写、调试具有多个段的程序
一。
1,CPU执行程序,程序返回前,DATA段中的数据为多少?
没有变化。
2,CPU执行程序,程序返回前,CS=14F7 SS=14F6 DS=14F5
3,设程序加载后,CODE段的段地址为X,则DATA段的段地址为 X-2 STACK段的段地址为 X-1
二。
1,CPU执行程序,程序返回前,DATA段中的数据为多少?
没有变化
2,CPU执行程序,程序返回前,CS=14F7 SS = 14F6 DS = 14F5
3,设程序加载后,CODE段的段地址为X,则DATA段的段地址为 X-2 ST...


- [游客] 因10001H不为16的倍数,所以偏移地址取FFFFH 不成立,退一位取 FFF0H SA*1 05/03 18:51
- [younggay] 牛年牛远连连。 02/02 18:07
- [sunbird333] 受教。。。~~ 01/26 14:58
- [mess] 4,对于如下定义的段: name segment ... name e 01/15 16:59
- [mess] mov sp,24h ------------- 这个设置大了,已经超出定义的数据了。程序中只 12/30 14:09
- [游客] 学习切忌过河拆桥的思想。 12/28 01:32
- [coco] 如果你有足够的耐心,十足的毅力,应该再学习C语言之前学学汇编,这会让你对许多比较细腻的概念有清醒的认 12/27 18:29
- [sunbird333] 呵,受教。。谢谢 12/26 10:25
- [younggay] 编程除了技术外,还有就是细节。 12/26 03:38
- [游客] 是我没写清楚 不好意思 在我写的东西里SA地址为程序入口地址 初学 有些东西考虑的不够周全 12/24 23:03
[2008-12-30 21:52] 实验5
阅读全文 |
评论次数(1) |
浏览次数(842) |
所属类型(汇编作业)
[2008-12-28 23:20] 检测点6.1
检测点6.1
1,下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax
add bx,2
loop s
...
1,下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
start: mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s: mov ax,[bx]
mov cs:[bx],ax
add bx,2
loop s
...
阅读全文 |
评论次数(2) |
浏览次数(836) |
所属类型(汇编作业)
[2008-12-09 01:42] 实验4 修改后
1.
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,64
s: mov [bx],dl
inc bx
inc dl
loop s
mov ax,4c00h
int 21h
code ends
end
2.
assume cs:code
code segment
mov ax,0020h
mov ...
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov dl,0
mov cx,64
s: mov [bx],dl
inc bx
inc dl
loop s
mov ax,4c00h
int 21h
code ends
end
2.
assume cs:code
code segment
mov ax,0020h
mov ...
阅读全文 |
评论次数(1) |
浏览次数(599) |
所属类型(汇编作业)
[2008-12-08 19:33] 实验4
实验4
1,编程,身内存0:200~0:23F依次传送数据0~63(3FH).
assume code
code segment
mov ax,0020H
mov ds,ax
mov bl,0
mov dx,0
mov cx,40H
s:mov [dx],bl
inc dx
inc bl
loop s
mov ax,4c00H
int 21H
code ends
end
2,编程,向内存0:200~0:23F依次传送数据0...
1,编程,身内存0:200~0:23F依次传送数据0~63(3FH).
assume code
code segment
mov ax,0020H
mov ds,ax
mov bl,0
mov dx,0
mov cx,40H
s:mov [dx],bl
inc dx
inc bl
loop s
mov ax,4c00H
int 21H
code ends
end
2,编程,向内存0:200~0:23F依次传送数据0...
阅读全文 |
评论次数(4) |
浏览次数(638) |
所属类型(汇编作业)
[2008-12-05 21:45] 实验3
实验3.编程.编译.连接.跟踪.
1,略
2,用debug跟踪T1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容.
执行前
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000
DS=14D7 SS=14E7 CS=14E7 IP=0000
执行mov ax,2000H
AX=2000 IP=0003
执行mov ss,ax
执行mov sp,0
SS=2000 IP=0008 SS=0000
执行add sp,10
SP=000A IP=000B
执行pop ax
AX=0000 SP=000C IP=000C ...
1,略
2,用debug跟踪T1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容.
执行前
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000
DS=14D7 SS=14E7 CS=14E7 IP=0000
执行mov ax,2000H
AX=2000 IP=0003
执行mov ss,ax
执行mov sp,0
SS=2000 IP=0008 SS=0000
执行add sp,10
SP=000A IP=000B
执行pop ax
AX=0000 SP=000C IP=000C ...
阅读全文 |
评论次数(4) |
浏览次数(1005) |
所属类型(汇编作业)
[2008-12-04 09:58] 检测点3.2
检测点3.2
1,补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中.逆序复制的含义如图3.17所示(图中内存里的数据均为假设).
做题之前没看下面的填空,自己想了2个算法,一个跟下面第2个程序一样.不过多了一个无用的步骤:POP AX;MOV [E],AX(指令功能没用熟练)..另一个.想错了.开始想设定2个栈段,直接将头一个栈段里的数据传送到另一个栈段里,写了下代码..发现不太现实,要多次修改SS,SP.而现实情况可能之前定义的栈里的数据已经被覆盖....-_-%#...
mov ax,1000H
mov ds,ax
mov a...
1,补全下面的程序,使其可以将10000H~1000FH中的8个字,逆序复制到20000H~2000FH中.逆序复制的含义如图3.17所示(图中内存里的数据均为假设).
做题之前没看下面的填空,自己想了2个算法,一个跟下面第2个程序一样.不过多了一个无用的步骤:POP AX;MOV [E],AX(指令功能没用熟练)..另一个.想错了.开始想设定2个栈段,直接将头一个栈段里的数据传送到另一个栈段里,写了下代码..发现不太现实,要多次修改SS,SP.而现实情况可能之前定义的栈里的数据已经被覆盖....-_-%#...
mov ax,1000H
mov ds,ax
mov a...
阅读全文 |
评论次数(3) |
浏览次数(315) |
所属类型(汇编作业)
[2008-12-02 22:24] 检测题3.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 思路:DS=1,偏移地址为0,得出物理地址为0010H即0000:0010,指令中寄存器为16位,传送...
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 思路:DS=1,偏移地址为0,得出物理地址为0010H即0000:0010,指令中寄存器为16位,传送...
阅读全文 |
评论次数(1) |
浏览次数(299) |
所属类型(汇编作业)
[2008-11-26 20:30] 第2章,实验一
实验1
1.知道了debug的含义
2.在这个实验中.了解和运用了debug的几个指令.和各自的功能
实验任务
1.略
2.略
3.刚看到地址的时候没有在意,在寻找的过程中.想到内存的分配.
实验让试着改变其中的数据,又想到.肯定是ROM地址空间.
这步实验完成后,又回头重看了1.15节,记忆更深一步
4 填写的地址为显存地址,在同一地址填写不同的数据,会在屏幕的同一位置显示不同的图案.大概在右上角的位置,改变填写地址后,
显示的小图案会在屏幕的不同位置出现....
1.知道了debug的含义
2.在这个实验中.了解和运用了debug的几个指令.和各自的功能
实验任务
1.略
2.略
3.刚看到地址的时候没有在意,在寻找的过程中.想到内存的分配.
实验让试着改变其中的数据,又想到.肯定是ROM地址空间.
这步实验完成后,又回头重看了1.15节,记忆更深一步
4 填写的地址为显存地址,在同一地址填写不同的数据,会在屏幕的同一位置显示不同的图案.大概在右上角的位置,改变填写地址后,
显示的小图案会在屏幕的不同位置出现....
阅读全文 |
评论次数(1) |
浏览次数(373) |
所属类型(汇编作业)
[2008-11-26 20:08] 检测点2.3
检测点2.3
下面的3条指令执行后,CPU几次修改IP?都在什么时候? 最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
4次修改IP,
分别在: 1,将mov ax,bx指令读取到指令缓冲器中后
2,将sub ax,ax指令读取到指令缓冲器中后
3,将jmp ax指令读取到指令缓冲器中后
4,执行jmp ax指令后
最后IP中的值为0...
下面的3条指令执行后,CPU几次修改IP?都在什么时候? 最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
4次修改IP,
分别在: 1,将mov ax,bx指令读取到指令缓冲器中后
2,将sub ax,ax指令读取到指令缓冲器中后
3,将jmp ax指令读取到指令缓冲器中后
4,执行jmp ax指令后
最后IP中的值为0...
阅读全文 |
评论次数(1) |
浏览次数(384) |
所属类型(汇编作业)
[2008-11-26 12:31] 第2章 检测点2.2
检测点2.2
1
给定段地址为0001H,仅通过变化偏移地址,CPU的寻址范围为 00010H 到 1000FH
解题思路: 偏移地址为16位,偏移范围为0~FFFFH, 由此得出CPU的寻址范围为
0001H*16+0000H ~ 0001H*16+FFFFH 为 00010H~1000FH
2
有一组数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是
最小为 1001H ,最大为 2000H
解题思路
用偏移地址寻址,变化范围为0~FFFFH,
由公式得出两条结论, 最小: SA*16...
1
给定段地址为0001H,仅通过变化偏移地址,CPU的寻址范围为 00010H 到 1000FH
解题思路: 偏移地址为16位,偏移范围为0~FFFFH, 由此得出CPU的寻址范围为
0001H*16+0000H ~ 0001H*16+FFFFH 为 00010H~1000FH
2
有一组数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是
最小为 1001H ,最大为 2000H
解题思路
用偏移地址寻址,变化范围为0~FFFFH,
由公式得出两条结论, 最小: SA*16...
阅读全文 |
评论次数(2) |
浏览次数(573) |
所属类型(汇编作业)