通过写回(clflush)损害RAM

时间:2018-11-30 22:46:10

标签: x86 masm ram

我为MASM编写了x86汇编代码:

loop_start:
mov dword ptr [esp], 0
clflush dword ptr [esp]
mov dword ptr [esp], 0FFFFFFFFh
clflush dword ptr [esp]
jmp loop_start

它将无限循环零和一写入内存中的同一地址。
在此示例中,仅位于堆栈的顶部。
然后,clflush指令强制将cpu-cache中的写回至内存。
问题是,如果运行一天左右,会及时损害内存。
因为我知道RAM会随时间变成错误,例如ssd驱动器是可写的。

1 个答案:

答案 0 :(得分:1)

与Flash(用于SSD中)不同,DRAM具有无限的写入耐久性。它的读/写不会比只坐在那里上电快得多。

BTW,import 'package:flutter/material.dart'; import 'package:flutter_statusbarcolor/flutter_statusbarcolor.dart'; import 'package:flutter/services.dart'; void main() async{ try { await FlutterStatusbarcolor.setStatusBarColor(Colors.black); } catch (e) { print(e); } runApp(MaterialApp( title: 'Using Keys', debugShowCheckedModeBanner: false, theme: ThemeData( primaryColor: Colors.white ), home: InputBox(), )); } class InputBox extends StatefulWidget { @override _InputBoxState createState() => _InputBoxState(); } class _InputBoxState extends State<InputBox> { bool loggedIn = false; String _email, _username, _password; final scaffoldKey = GlobalKey<ScaffoldState>(); //a key for the state of the scaffold final formKey = GlobalKey<FormState>(); //a key for the state of the form @override Widget build(BuildContext context) { return Scaffold( key: scaffoldKey, appBar: AppBar( //backgroundColor: Colors.white, centerTitle: false, brightness: Brightness.dark, title: Text("Using Keys", style: TextStyle( fontSize: 24.0, )), elevation: 4.0, ), ); } } movnti将是进行缓存绕过存储的更简单方法。交替编写一对高速缓存行。