level 1
fjcweil9906
楼主
程序看不出毛病。
电脑是好的,双核Intel cpu,2G内存,运行dos、xp正常。
但是在 dos下 使用汇编写入内存会死机。
段地址为 0x09、0x20、0x40 都一样死机。
以下都只检测1段:0x9。
不能通过的内存主要在 0x300--0x400;0xA080 到 0xB000
表现为死机。
我试过两台电脑都是这样。
所以说诡异。
测试程序:
mov ax,0x09;//0x20 0x40 准备测试其他段 //常规内存 0--0x09
mov ds,ax
;//这里 sp=7bfc ss=cs=0 ds=9
mov cx,0x8000;0x8000 ;循环次数。
mov bx,0x7400 ;//ds=8 ;//0x8000 0x0000 要检测的内存首地址。
looprw_1:
mov ax,0x55aa
mov [bx],ax
mov ax,[bx]
cmp ax,0x55aa
je add_bx_1
jne err_rw1
add_bx_1:
add bx,2
cmp bx,0x0000;//结束地址。
je ok_rw1 ;//检测结束。
loop looprw_1 ;//继续检测。
ok_rw1:
call disp_str_ram_ok ;显示提示信息“内存正确”
jmp end_rw1
err_rw1:
call disp_str_ram_err ;显示提示信息“内存错误”
ret
2015年07月29日 13点07分
1
电脑是好的,双核Intel cpu,2G内存,运行dos、xp正常。
但是在 dos下 使用汇编写入内存会死机。
段地址为 0x09、0x20、0x40 都一样死机。
以下都只检测1段:0x9。
不能通过的内存主要在 0x300--0x400;0xA080 到 0xB000
表现为死机。
我试过两台电脑都是这样。
所以说诡异。
测试程序:
mov ax,0x09;//0x20 0x40 准备测试其他段 //常规内存 0--0x09
mov ds,ax
;//这里 sp=7bfc ss=cs=0 ds=9
mov cx,0x8000;0x8000 ;循环次数。
mov bx,0x7400 ;//ds=8 ;//0x8000 0x0000 要检测的内存首地址。
looprw_1:
mov ax,0x55aa
mov [bx],ax
mov ax,[bx]
cmp ax,0x55aa
je add_bx_1
jne err_rw1
add_bx_1:
add bx,2
cmp bx,0x0000;//结束地址。
je ok_rw1 ;//检测结束。
loop looprw_1 ;//继续检测。
ok_rw1:
call disp_str_ram_ok ;显示提示信息“内存正确”
jmp end_rw1
err_rw1:
call disp_str_ram_err ;显示提示信息“内存错误”
ret