终于知道为什么综合研究实验5中,为什么大家所看到的数据段和栈段是同一个段,而我一直以来都看到的是不同的段。
由于c0s.obj中是我们的程序所需要的启动代码,它会为我们完成资源空间的申请,比如安排好数据段,代码段,栈段等,原来我一直在debug中用u命令查看后直接用r命令修改IP到我们的主函数,main的起始处,但这却忽略了前面所有的代码执行。所以只看到了IP有变化,以至于我我在屏幕上显示的全是数据段里的值(都是空格),呵呵。
当我用G命令g 01fa时,才发现,一切都是对的,数据段和栈段是一样的,原来这么简单的错误,让我想了好几天啊。大家如果没有出现过这种问题就好,在这里也给大家提个醒!...
- [mywiil] 原来如此。 06/04 15:27
- [martian] 博主在debug过程中,要清晰程序流程,仔细观察各个寄存器数值的变化,会对你理解遇到的问题有帮助。 06/03 15:41
- [crazyman] 一起努力。 03/25 11:24
- [游客] 帮忙不敢说,共勉吧。 03/24 17:05
- [ppt] 不错,程序很好. 05/27 15:05
- [crazyman] 不错,在困难的时候没有放弃。 博主贴出的程序要写完整哟,至少将这个段写好吧。呵呵 因为博主说是在 05/26 09:56
- [huige] 年份和收入都是四个字节,一起写就可以了,空格好像本来就有。 我倒关心如何把雇员数也一起写入,不过这 05/25 09:29
- [mess] 计算机告诉我们的一定是正确的,结果没问题;) 05/22 08:45
- [e30614007] ssume cs:code code segment mov ax,code 05/03 18:47
- [游客] //先随便假设一个,编译连接,debug跟踪,u查看机器码长度。或者根据cx中的值来判断。然后再来修 05/03 10:43
- [mess] 刚收到一本第二版,不过书城还没有到货,只能去网上订购了一本,不过还蛮快的~ 05/09 10:02
[2009-06-04 11:01] 原来是这么回事
阅读全文 |
评论次数(1) |
浏览次数(656) |
所属类型(默认类型)
[2009-06-02 14:18] 研究实验5 (2)疑惑
(2)写一个程序b.c
void showchar(int,int,...);
main()
{
showchar(8,2,'a','b','c','d','e','f','g','h');
}
void showchar(int n,in color,...)
{
int a;
for(a=0;a!=n;a++)
{
*(char far *)(0xb8000000+160*10+80+a+a)=*(int *)(_BP+8+a+a);
*(char far *)(0xb8000000+160*10+81+a+a)=colo...
void showchar(int,int,...);
main()
{
showchar(8,2,'a','b','c','d','e','f','g','h');
}
void showchar(int n,in color,...)
{
int a;
for(a=0;a!=n;a++)
{
*(char far *)(0xb8000000+160*10+80+a+a)=*(int *)(_BP+8+a+a);
*(char far *)(0xb8000000+160*10+81+a+a)=colo...
阅读全文 |
评论次数(1) |
浏览次数(621) |
所属类型(汇编作业)
[2009-03-24 16:23] 回到底层
算算还是去年的三月份开始接触汇编的,当时只是一时的兴趣,由于自己不是计算机专业,所以当初学完了王爽老师的书,就一直扔着了。可能没怎么用心,到现在都忘得差不多了。主要是不知道汇编学完能做什么,或者是不是可以以后在windows下开发软件,用不用学操作系统编译器什么的。现在我的专业要用到vC++,觉的mfc很难学,而c++也没有理解透彻,不知道再回来会不会晚。
还是要打好基础啊,希望各位能帮帮...
还是要打好基础啊,希望各位能帮帮...
阅读全文 |
评论次数(2) |
浏览次数(689) |
所属类型(默认类型)
[2008-05-27 13:10] 终于可以开始第十章了
实验9
assume cs:code
data segment
db 'welcome to masm!'
db 00000010b,00100100b,01110001b
data ends
code segment
start: mov ax,0b872h
mov ds,ax
mov ax,data
mov es,ax
mov bx,0
mov bp,0
mov cx,3
s: mov es:[13h],cx
mov si,0
...
assume cs:code
data segment
db 'welcome to masm!'
db 00000010b,00100100b,01110001b
data ends
code segment
start: mov ax,0b872h
mov ds,ax
mov ax,data
mov es,ax
mov bx,0
mov bp,0
mov cx,3
s: mov es:[13h],cx
mov si,0
...
阅读全文 |
评论次数(1) |
浏览次数(836) |
所属类型(汇编作业)
[2008-05-25 00:07] 实验7终于搞定
只给出指令代码
codesg segment
start: mov ax,data
mov ss,ax
mov ax,table
mov ds,ax
mov bp,0
mov bx,0
mov cx,21
s: mov dx,cx
mov cx,2
mov si,0
s1: mov ax,[bp+si]
mov [bx+si],ax
mov ax,[bp].54h[si]
...
codesg segment
start: mov ax,data
mov ss,ax
mov ax,table
mov ds,ax
mov bp,0
mov bx,0
mov cx,21
s: mov dx,cx
mov cx,2
mov si,0
s1: mov ax,[bp+si]
mov [bx+si],ax
mov ax,[bp].54h[si]
...
阅读全文 |
评论次数(2) |
浏览次数(789) |
所属类型(汇编作业)
[2008-05-21 23:44] 实验6完成
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
...
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
...
阅读全文 |
评论次数(1) |
浏览次数(795) |
所属类型(汇编作业)
[2008-05-02 23:51] 实验4作业
(1)和(2)
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s: mov [bx],bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
刚开始便用了九条指令,误打误撞
(3)
ssume cs:code
code segment
mov ax,code ...
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0
mov cx,64
s: mov [bx],bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
刚开始便用了九条指令,误打误撞
(3)
ssume cs:code
code segment
mov ax,code ...
阅读全文 |
评论次数(2) |
浏览次数(881) |
所属类型(汇编作业)