bios

How to set Timer

廉价感情. 提交于 2020-07-10 05:59:27
问题 Is there any way I can set timer 60 seconds with xor ah,ah Enter_Again: xor ah, ah ; I should put 60 seconds here int 16h ; The user should press S before 60 seconds mov bl,al cmp al,"S" 回答1: Your previous questions suggest you are running under DOS. There is no BIOS or DOS call that times out keyboard input. You can latch (chain) onto Interrupt 0x1c which is a user interrupt routine that gets called about 18.2 times a second. One minute is about 1092 of these interrupts. Your timer interrupt

Assembly: Unable to read sectors after the first track

有些话、适合烂在心里 提交于 2020-07-03 05:27:09
问题 As part of my operating system I wrote this read sector function. It takes a sector address to read from a BIOS device id. But when I set to read from sector 19 (Head: 0, Track: 1, Sector 2) the result at 0x1000:0x0000 is likely past that sector (I checked that several times with a hex viewer). Also, when I read more than one sector, so that sector 19 is included, at the address mentioned above, I can read sector 19 which is copied at 0x1000:(512*19) without a problem. void __NOINLINE

BIOS INT 13H with AH=2 can only read 72 sectors each time. Why?

 ̄綄美尐妖づ 提交于 2020-06-22 15:42:42
问题 I am using Bochs 2.4.5 to write a boot sector code. I use the INT 13H to read sectors from floppy. But I found that if the sector count to read > 72, the INT13 will fail. And the return code is AH=1. Below's the code and here is the INT13. The return code is AH=1. Why can't the INT 13H read more than 72 sectors? xorb %ah, %ah xorb %dl, %dl int $0x13 # reset the floppy movw $0x8000, %ax movw %ax,%es movw $0, %bx # ES:BX is the buffer movb $0x02, %ah movb $73, %al # how many sectors to read. 72

Why does the BIOS entry point start with a WBINVD instruction?

社会主义新天地 提交于 2020-05-25 06:26:47
问题 I'm investigating the BIOS code in my machine (x86_64 Linux, IvyBridge). I use the following procedure to dump the BIOS code: $ sudo cat /proc/iomem | grep ROM 000f0000-000fffff : System ROM $ sudo dd if=/dev/mem of=bios.dump bs=1M count=1 Then I use radare2 to read and disassemble the binary dump: $ r2 -b 16 bios.dump [0000:0000]> s 0xffff0 [f000:fff0]> pd 3 : f000:fff0 0f09 wbinvd `=< f000:fff2 e927f5 jmp 0xff51c f000:fff5 0000 add byte [bx + si], al I know x86 processor initialization

Does modern PC video hardware support VGA text mode in HW, or does the BIOS emulate it (with System Management Mode)?

可紊 提交于 2020-05-25 04:31:27
问题 What really happens on modern PC hardware booted in 16-bit legacy BIOS MBR mode when you store a byte such as '1' (0x31) into the VGA text (mode 03) framebuffer at physical linear address B8000 ? How slow is a mov [es:di], eax store with the MTRR for that region set to UC? (Experimental testing on one Kaby Lake iGPU laptop indicates that clflushopt on WC was roughly the same speed as UC for VGA memory. But without clflushopt, mov stores to WC memory never leave the CPU and don't update the

How to properly setup SS, BP and SP in x86 Real Mode?

泄露秘密 提交于 2020-05-09 05:11:48
问题 I want to know how to properly do it, because the way I'm doing it isn't working. When setting the BP register with 7C00h, then setting the SP register with BP , then pushing some ASCII, then getting the data from the memory to print it with INT 10h , it works just fine. mov ax, 7C00h mov bp, ax mov sp, bp push 'A' mov ah, 0Eh mov al, [7BFEh] int 10h The actual output is A But when I do this: mov ax, 7C00h mov ss, ax mov bp, ax mov sp, bp ... It stops working. The interrupt is called, the

ARM-Linux开发与MCU开发有何不同?下篇

感情迁移 提交于 2020-04-02 16:27:32
ARM-Linux开发与MCU开发有何不同?下篇 (4)固件的存储位置不同 单片机:通常具备片内flash存储器,固件程序通常存储在该区域,若固件较大则需要通过外部电路设计外部flash用于存储固件。 ARM-Linux: 由于其没有片内的flash, 并且需要运行操作系统,整个系统映像通常较大,故ARM-Linux开发的操作系统映像和应用通常存储在外部的MMC、SD卡上,或者采用SATA设备等。 (5)启动方式不同 单片机:其结构简单,内部集成flash, 通常是芯片厂商在程序上电时加入固定的跳转指令,直接跳转到程序入口(通常在flash上);开发的应用程序通过编译器编译,采用专用下载工具直接下载到相应的地址空间;所以系统上电后直接运行到相应的程序入口,实现系统的启动。 ARM-Linux:由于采用ARM芯片,执行效率高,功能强大,外设相对丰富,是功能强大的计算机系统,并且需要运行操作系统,所以其启动方式和单片机有较大的差别,但是和家用计算机的启动方式基本相同。其启动一般包括BIOS,bootloader,内核启动,应用启动等阶段; (a)启动BIOS: BIOS是设备厂家(芯片或者是电路板厂家)设置的相应启动信息,在设备上电后,其将读取相应硬件设备信息,进行硬件设备的初始化工作,然后跳转到bootloader所在位置(该位置是一个固定的位置,由BIOS设置)。(根据个人理解

联想台式机启天m4350 启用intel vt-x

六眼飞鱼酱① 提交于 2020-04-02 11:46:13
在vmware workstations10 64位上安装windows server 2012操作系统时,出现例如以下错误: 已将该虚拟机配置为使用 64 位客户机操作系统。可是,无法运行 64 位操作。 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。 假设已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未又一次启动,则 Intel VT-x 可能被禁用。 (1) 确认 BIOS/固件设置中启用了 Intel VT-x 并禁用了“可信运行”。 (2) 假设这两项 BIOS/固件设置有一项已更改,请又一次启动主机。 (3) 假设您在安装 VMware Workstation 之后从未又一次启动主机,请又一次启动。 (4) 将主机的 BIOS/固件更新至最新版本号。 解决方法: 1、重新启动电脑按F1,进入 BIOS 设置页面。 2、选择 Advance,再选择intel virtual technology ,此时该选项应该是disabled(关闭)的; 3、将disabled(关闭)改为 enabled(开启); 4、保存设置。重新启动就可以。 来源: https://www.cnblogs.com/cynchanpin/p/7243331.html

win7注册表后开启AHCI模式

孤街醉人 提交于 2020-03-29 19:09:04
注册表编辑器”窗口左侧标题栏定位至HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\services\msahci分支,然后在右侧窗口,双击“Start”。 在打开的“编辑DWORD值”对话框,将“数值数据”框中的值由3改为数字0(如上图2),单击“确定”按钮。 重新启动计算机时进入BIOS设置界面,将硬盘更改为AHCI模式。例如,针对笔者计算机而言,启动计算机时按F1键进入BIOS,依次选择Devices→ATA Drives Setup→Configure SATA as→AHCI(如图3),最后按F10键保存并退出BIOS 来源: https://www.cnblogs.com/Amaranthus/archive/2010/09/16/1828012.html

Android Studio 安装及常见问题

这一生的挚爱 提交于 2020-03-22 09:45:45
  今年放假比去年早了一些,就提前回来了。感觉挺爽,结果教研室电脑没有带回来,悲剧是导师让我维护一下以前的项目,只能屁颠屁颠的搞起呀。只能用自己的笔记本搭建android开发环境。由于前阶段听说Android Studio用着爽歪歪,于是尝试在超卡的笔记本上跑Android Studio。哇咔咔,费了九牛二虎之力终于将Android Studio玩转了。先上个图,快过年了,祝大家新年快乐!    Android官网也开始推广Android Studio了,以前官网好像提供Eclipse和ADT打包下载,现在好像不提供了。Android Studio下载网址: http://developer.android.com/sdk/index.html 。 注意 :Android Studio 要求JDK1.7以上才可以安装。安装过程非常简单,这里就不详细介绍了。   我遇到第一个问题就是:安装完成后第一次启动时候会首先显示Fetching Android SDK component information,等一会儿在Setup Wizard - Downloading Components界面下面开始下载Andorid SDK,在这里会等很长时间,最后提示Retry。Retry估计有N次,还行不行。 问题原因 :   Retry了N次,不成功是由于下载地址被墙的缘故