procedure TMainFrm.Button1Click(Sender: TObject);
var dw1:Cardinal;
c:char;
begin
dw1:= Cardinal(-1);
// dw1:=9;
asm
add dw1,8
push ebx
seta bl
mov c,bl
pop ebx
end;
Memo1.Lines.Add(inttostr(dw1));
Memo1.Lines.Add('');
Memo1.Lines.Add(inttostr(ord(c)));
end;
我用如上代码判断 ,
当 ord(c)为 0 时 ,是有溢出了;
当 ord(c)为 1 时 ,是没有溢出。这个方式是否正确??
还有别的方式判断么??
请指教啊 ,十分感谢 。
解决方案 »
- delphi 怎样用delphi获取磁盘的序列号呢?最好给段代码 谢谢
- 如何让DBGrid绘制的时候精确定位到每一个单元格的颜色?
- 如何设置导出的excel表中的第一行各个单元格中的文字可以自动换行,在excel表中显示完全。
- 菜鸟想问这个函数有什么用?
- 第一次用TADOQuery,迷惑中!!!
- 格式化
- inetmsg包是什么包,在哪里有下载啊???
- 哪里可以下载 DELPHI6 DEVELOPER'S GUIDE 这本书?
- 如何通过原代码,知道代码用的第三方控件是什么版本的?
- 问问大侠,能安装数据库应用程序和它所基于的数据库的这样的安装程序怎么作?
- 问个新手问题 Fastreport4.0 如何读取数据表中数据进行打印呢?
- API函数创建窗体问题?
var
dw1:cardinal;
yc:boolean;
begin
dw1:=cardinal(-1);
yc:=false;
asm
add dw1,8
jnc @noyc
inc yc
@noyc:
end;
if yc then showmessage('溢出了!');
end;
dw1,dw2:cardinal;
begin
dw1:=cardinal(-1);
dw2:=dw1+8;
if (dw2<8) or (dw2<dw1) then showmessage('溢出了!');
end;
.....
except
on E: Exception do
application.showexception(e);
end;