是调试解决bug的命令。具体问题自然解决方法不同,自然输入的命令不同。maxdos中的debug是为maxdos提供的有力的侦错,跟踪程序运行,检查系统数据的工具程序,它是在字符界面下以单字符命令方式工作。要很好地使用它必须具备一定的汇编程序设计和硬件基本知识的能力,当然,它为汇编语言程序员提供了有效的调试手段,它的功能包括以下几个方面。
1
直接输入、更改、跟踪、运行汇编程序
2
观察 *** 作系统的内容;
3
查看rom
bios的内容;
4
观察更改ram内部的设置值;
5
以扇区或文件的方式读写软盘数据。
在debug中地址用段地址与段内地址来表示,而段地址可以明确地指出来,也可以用一个段指示器(段寄存器)来代表,用段寄存器表示时,其段地址就是此寄存器的内含值:
如:用段地址和段内地址表示foff:0100
用段寄存器和段内地址表示csf:0100←cs指向f000
下面列出了常用命令用法。
-a
地址
从指定地址开始编写小汇编程序,按两个回车键结束编辑
-u
地址
从指定地址开始反汇编32字节的机器指令,缺省地址则从上一u命令继续
-d
始址
终址
以16进制/asc字符对照方式显示指定内存范围的数据,每行显示10h个字节
-e
地址
值表
用给出的值表(空格分隔)替换指定地址开始的内存单元,例:-e
100
'v'
1f
'hello'
-n
文件名
为后续的l/w命令约定所 *** 作的文件名
-l
地址
将n命令所指定文件的内容读入到指定内存位置。另,逻辑卷扇区直接读:-l
地址
逻卷号
起始逻扇号
扇数
-w
地址
将bx-cx个字节的内存数据写入n命令指定的文件中。另,逻辑卷扇区直接写:-w
地址
逻卷号
起始逻扇号
扇数
-r
寄存器名
显示并允许修改指定寄存器的值
-g=始址
终址
执行指定内存中的机器指令程序
-t=地址
单步执行机器指令,缺省地址则从上一t命令继续。另,继续跟踪m条指令:-t
m
读取c:卷的引导扇区,并保存到boot1文件中,并简单分析引导程序的前面几条指令:
-l
1000
2
0
1
-n
boot1
-r
bx
;输入0000
-r
cx
;输入0200
-w
1000
-u
1000
读取第一个硬盘上的主引导扇区,并保存到mb1文件中,在屏幕上显示硬盘分区表数据:
-a
100
1、运行Acronis
Disk
Director,你将能看到上图的 *** 作界面,程序会要求你选择使用的模式,为了图形化的 *** 作磁盘空间,使用到所有功能,我们选择“Manual
Mode(手工模式)”,然后点击“OK”。
2、首先我们要解决硬盘只分了一个系统区的问题,我们要把目标盘(C盘)调整到目标大小,而多出来的空间则创建D、E、F盘。在程序窗口下方表示的C盘图标上点击鼠标右键,选择“Resize(调整尺寸)”。
3、这时候我们可以直接在“Partition
Size(分区大小)”中输入想要的大小,也可以在图形化的调整界面上直接拖拉代表分区的色块来调整分区大小。
4、接着回到程序的主界面,你可以看到,在C盘右侧多出了一块绿色“Unallocated(未划分空间)”。在该空间上点击鼠标右键,选择“Create
Partition(创建分区)”
5、然后你可以看到窗口。在“Partition
Label(分区卷标)”中输入你想要使用的卷标,在“File
System(文件系统)”下拉菜单中选择你想要使用的文件系统(阿财推荐NTFS),然后点击“OK”。分区类型保持默认的“Logical
Partition(逻辑分区)”即可。
6、同样的此时可以直接在“Partition
Size(分区大小)”
中输入想要的分区大小,也可以在图形化的调整界面上直接拖拉代表分区的色块来调整新分区大小。
7、多个分区需要依次反复的 *** 作,直到把笔记本磁盘上全部的剩余空间划分完毕。
8、到这里,本次的工作基本已经全部做完了,现在请仔细检查当前显示的硬盘分区情况是否你所预期的,如果和你的期望有任何出入,还请立刻修改,因为所有的设置都还没有被应用。待你检查一切设置都准确无误后就可以应用这些改变了。
9、点击程序主窗口工具栏上的黑白相间小旗图标,选择“Proceed(执行 *** 作)”然后程序可能会告诉你,这些调整需要重启动系统,点击“Reboot(重启动)”按钮,然后程序会自动将所有设置应用完成。
10、重新启动这时候Acronis
Disk
Director
Suite将会按照刚才的计划,一步一步的执行完全部分区过程,包括迁移数据,调整系统分区,划分新分区。带大量数据的可能会花费较多时间处理,停留在此画面时间可能长达几十分钟,请用户耐心等待,千万不要手动重新启动笔记本电脑。
11、完成后将自动重新启动Windows
,登录进入桌面以后很可能会提示发现新的磁盘,这时还需要重启一次系统。
12、注意,整个过程中千万不能断电,否则系统盘上的Windows
VISTA系统和数据很可能会全部丢失。所以笔者强烈建议用户在进行分区 *** 作前保证笔记本电脑的电池是处于充满电状态。
我的能运行!!但表达式末尾加要加#
例如2+3要打2+3#
#include<cstdio>
#include<malloch>
#define NULL 0
typedef struct node{
char date;
struct node next;
}SNode;
SNode InitStack(){
SNode top;
top=(SNode )malloc(sizeof(SNode));
top->next=NULL;
return top;
}
void PushOptr(SNode top,char x){
SNode p;
p=(SNode )malloc(sizeof(SNode));
p->date=x;
p->next=top->next;
top->next=p;
}
char PopOptr(SNode top){
SNode p;
char x;
if(top==NULL)
return NULL;
p=top->next;
x=p->date;
top->next=p->next;
free(p);
return x;
}
void PushOpnd(SNode top,char x){
SNode p;
p=(SNode )malloc(sizeof(SNode));
p->date=x;
p->next=top->next;
top->next=p;
}
char PopOpnd(SNode top){
SNode p;
char x;
if(top==NULL)
return NULL;
p=top->next;
x=p->date;
top->next=p->next;
free(p);
return x;
}
char GetTop(SNode top){
return (top->next)->date;
}
int In(char c){
int n;
switch(c){
case '+':
case '-':
case '':
case '/':
case '(':
case ')':
case '#':n=1;break;
default:n=0;break;
}
return n;
}
char Precede(char x,char y){
int i,j;
int form[7][7]={{1,1,-1,-1,-1,1,1},{1,1,-1,-1,-1,1,1},{1,1,1,1,-1,1,1},{1,1,1,1,-1,1,1},{-1,-1,-1,-1,-1,0,2},{1,1,1,1,2,1,1},{-1,-1,-1,-1,-1,2,0}};
switch(x){
case '+':i=0;break;
case '-':i=1;break;
case '':i=2;break;
case '/':i=3;break;
case '(':i=4;break;
case ')':i=5;break;
case '#':i=6;break;
}
switch(y){
case '+':j=0;break;
case '-':j=1;break;
case '':j=2;break;
case '/':j=3;break;
case '(':j=4;break;
case ')':j=5;break;
case '#':j=6;break;
}
if(form[i][j]==1)
return '>';
else
if(form[i][j]==-1)
return '<';
else
return '=';
}
int Operate(char x,char z,char y){
int a=x-'0',b=y-'0';
switch(z){
case '+':return a+b;
case '-':return a-b;
case '':return ab;
case '/':return a/b;
}
}
char Eval_Exp(){
char a,b,c,r,f,z;
int result;
SNode top[2];
top[0]=InitStack();
PushOptr(top[0],'#');
top[1]=InitStack();
c=getchar();
while(c!='#'||(GetTop(top[0]))!='#'){
if(!In(c)){
PushOpnd(top[1],c);
c=getchar();
}
else{
r=Precede(GetTop(top[0]),c);
switch(r){
case '<':PushOptr(top[0],c);
c=getchar();
break;
case '=':PopOptr(top[0]);
c=getchar();
break;
case '>':b=PopOptr(top[0]);
a=PopOpnd(top[1]);
z=PopOpnd(top[1]);
result=Operate(z,b,a);
f=result+'0';
PushOpnd(top[1],f);
break;
}
}
}
return f;
}
void main(){
char result;
result=Eval_Exp();
printf("%d\n",result-'0');
}
你这是进入到中断服务程序中去了(看看cs的值便知) !
===========================================
T命令逐条指令执行程序,遇到子程序(CALL)或中断调用(INT n)指令也不例外,也会进入到子程序或中断服务程序当中执行。
P命令(Proceed)类似T命令,逐条执行指令、显示结果。但是当遇到子程序调用、中断功能调用和循环指令等时,不在子程序、中断服务程序或循环体中单步执行,而是直接执行完成子程序、中断服务程序或循环体,然后显示结果。
当不需要调试子程序、中断服务程序或循环程序段时,要应用P命令,而不是T命令。
以上就是关于请问各位命令debug是什么意思全部的内容,包括:请问各位命令debug是什么意思、如何用Acronis Disk Director Suite增加C盘空间、求一个C语言算术表达式求值程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)