bios

The controls of my game freeze after the first keypress with int 16h / ah=1

旧街凉风 提交于 2019-11-28 09:21:39
问题 I am coding a game in assembly 8086. I fixed the issue when the game didn't open, but I can't fix the controls. The ESC key works. When I press it, it goes to _QUIT function, but if any other key was pressed before that, the controls freeze and don't react on any key. Is there something wrong with my function? I tried to change the AL register to AH , but it didn't work. _KEYCHECK: mov ah,01h int 16h cmp al,1Bh ;ESC je _QUIT cmp al,48h ;UP je _PLAYER.UP cmp al,50h ;DOWN je _PLAYER.DOWN cmp al

How to display a number on the screen and and sleep for one second with DOS x86 assembly?

对着背影说爱祢 提交于 2019-11-28 08:10:48
问题 I'm using NASM 16 BITS. I'm trying to do a simple assembly code that prints the numbers from 0 to 255 with 1 second interval between each number. This is what I have so far: [bits 16] mov ax,cs mov ds,ax mov cx,255 mov ax,0 myloop: ;print in screen ax value ;wait 1 second inc ax loop myloop I'm not sure how to print the value of ax in the screen, and how to wait 1 second(placed them in a comment in the code). 回答1: There's a 4-byte counter at segment 0 offset 46Ch (or alternatively at seg 40h,

Why doesn't this boot loader code work?

爷,独闯天下 提交于 2019-11-28 06:00:27
问题 My expectation is that it prints a string, but nothing is printed out. When I make the string shorter, it sometimes works, and when I make them longer again, it works sometimes. I don't know why this isn't working. Could somebody help me? Thanks. The assembly code I'm using is: (Emacs 23, Ubuntu 10.10, nasm, VirtualBox OSE) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org 0x7c00 bits 16 str: db "Some say the world will end in fire",10,13 db "Some say in ice",10,13 db "From what I've tasted

计算机开机滴滴声解决办法

陌路散爱 提交于 2019-11-28 05:38:49
计算机开机滴滴声解决办法 请根据你的 主板BIOS 型号对照从中找出原因: Award BIOS: 1短:系统正常启动。 2短:常规错误。解决方法:重设BIOS。 1长1短:RAM或主板出错。 1长2短:显示器或显示卡错误。 *****1长3短:键盘控制器错误。 ***** 1长9短:主板Flash RAM或EPROM错误,BIOS损坏。 不断地响(长声):内存条未插紧或损坏。 不停地响:电源、显示器未和显卡连接好。 重复短响:电源有问题。 无声音无显示:电源有问题。 AMI BIOS: 1短:内存刷新失败。解决方法,更换内存条。 2短:内存ECC校验错误。解决方法:进入CMOS设置,将ECC校验关闭。 3短:系统基本内存(第1个64KB)检查失败。 4短: 系统时钟 出错。 5短:CPU错误。 6短:键盘控制器错误。 7短:系统实模式错误,不能切换到 保护模式 。 8短:显示内存错误。注: 显卡内存 简称显存。 9短:ROM BIOS检验和错误。*****1长3短:内存错误。***** 1长8短:显示测试错误。 如果你搞不清楚主板的BIOS是那种的,请将键盘和内存都检查一次,再试机。(看键盘或内存条插好没有,如考虑内存的话,可关机后将内存条取下,用毛刷清理插槽,用橡皮擦擦下内存条的金手指... 来源: https://blog.csdn.net/wangming520liwei

常见电脑硬件故障有哪些?如何解决?~~~主板故障

眉间皱痕 提交于 2019-11-28 05:07:16
一 、主板故障 随着主板电路集成度的不断提高及主板价格的降低,其可维修性也越来越低。主板常见的故障有如下几种。 1、元器件接触不良。主板最常见的故障就是元器件接触不良,主要包括芯片接触不良、内存接触不良、板卡接触不良几个方面。 板卡接触不良会造成相应的功能丧失,有时也会出现一些奇怪的现象。比如声卡接触不良会导致系统检测不到声卡;网卡接触不良会导致网络不通;显卡接触不良,除了导致显示异常或死机外,还可能会造成开机无显示,并发出报警声。 2、开机无显示。由于主板原因,出现开机无显示故障一般是因为主板损坏或被病毒破坏 BIOS所致。BIOS被病毒破坏后硬盘里的数据将部分或全部丢失,可以通过检测硬盘数据是否完好来判断BIOS是否被破坏。 3、主板IDE接口或SATA接口损坏。出现此类故障一般是由于用户带电插拔相关硬件造成的,为了保证计算机性能,建议更换主板予以彻底解决。 4、BIOS参数不能保存。此类故障一般是由于主板电池电压不足造成的,只需更换电池即可。 5、计算机频繁死机,即使在BIOS设置时也会死机。在设置BIOS时发生死机现象,一般是主板或CPU有问题,只有更换主板或CPU。出现此类故障一般是由于主板散热不良引起的。 如果在计算机死机后触摸CPU周围主板元件,发现温度非常高,说明是散热问题,需要清洁散热片或更换大功率风扇。 来源: https://blog.csdn.net/qq

转:BIOS的恢复技术之Top Swap的原理应用

北城余情 提交于 2019-11-28 03:24:31
原文地址: https://baijiahao.baidu.com/s?id=1628248717252216590&wfr=spider&for=pc 一版又一版的BIOS推送,目的无外乎就是为了用户更好的体验。领略到BIOS更新重要性的(或者领情的或者有更新强迫症的)用户,会动手去更新BIOS。很多用户担心BIOS更新后的安全问题,尤其是不敢面对更新过程中被打断后带来的“灾难后果”。 华硕BIOS更新界面 其实,你可以完全的将心放在肚子里,我们将全程为您的BIOS更新保驾护航,这就是今天科普的BIOS恢复技术。 BIOS恢复技术 BIOS恢复技术,就是当用户在更新BIOS的时候,出现了意外情况(比如断电)而导致的BIOS更新失败,下次开机的时候,BIOS还能正常启动的过程。 Dual 常见的BIOS恢复技术以Top Swap /Dual BIOS为主。在这里,针对Top Swap做一详细介绍。 Top Swap 首先,Top Swap(TS)是桥(PCH)里面的一个Bit位,默认值为0。需要注意的是 :这个 bit 值,是由主板上 battery(纽扣电池) 保存的。 纽扣电池 其次,既然要说BIOS的恢复技术,就必须要提到Bios的内容存储结构。BIOS ROM就是若干个FV(Fireware Volume)组成的,每个FV都有自己的使命,而且对于一些特殊的FV

Writing my own BIOS

无人久伴 提交于 2019-11-28 02:55:48
I'm not crazy, just reinventing the wheel :D I wrote boot-loaders, mouse & keyboard mini-drivers, mini OS and so on. I'm always trying to avoid DOS interrupts, using BIOS ones only, trying to go forward a unity mini OS, but suddenly I decided to write my own BIOS :) The Legend said : I was high-level programmer, then low-level one. One day I'll be machine-language programmer! Is a BIOS written in assembly? How can I flash it? What's the mechanism? Can I start editing my current BIOS? old_timer A BIOS can be written in assembly but doesn't have to be, some parts need to be to get the parameters

linux时间与Windows时间不一致的解决

China☆狼群 提交于 2019-11-27 23:42:33
一、首先要弄清几个概念: 1. “系统时间”与“硬件时间” 系统时间: 一般说来就是我们执行 date命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。 硬件时间:主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根据它来设定系统时间(注意:系统启动时根据硬件时间设定系统时间的过程可能存在时区换算,这要视具体的系统及相关设置而定)。 2. “UTC时间”与“本地时间” UTC时间:CoordinatedUniversal8 e2 i( H7 t0 ^/^Time 世界协调时间(又称世界标准时间、世界统一时间),在一般精度要求下,它与GMT(Greenwich MeanTime,格林威治标准时间)是一样的,其实也就是说 GMT≈UTC,但 UTC 是以原子钟校准的,更精确。 本地时间:由于处在不同的时区,本地时间一般与UTC是不同的,换算方法就是 本地时间 = UTC +时区 或 UTC = 本地时间 - 时区 时区东为正,西为负,例如在中国,本地时间都使用北京时间,在linux上显示就是 CST(China StandardTime,中国标准时,注意美国的中部标准时Central StandardTime也缩写为CST,与这里的CST不是一回事!),时区为东八区,也就是 +8 区,所以CST=UTC+(

dmesg 显示开机信息。

喜你入骨 提交于 2019-11-27 21:00:31
功能说明: 显示开机信息。 语  法: d mesg [-cn][-s <缓冲区大小>] 补充说明: kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用 dmesg 来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。 参  数:  -c  显示信息后,清除ring buffer中的内容。  -s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。  -n  设置记录信息的层级。 扩展阅读一:dmesg 命令 主要用途 主要应用: dmesg用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题 通常非常有用。在运行dmesg时,它显示大量信息。通常通过 less 或 grep 使用管道查看dmesg的输出,这样可以更容易找到待查信息。例如,如果发现硬盘性能低下,可以使用dmesg来检查它们是否运行在DMA模式: $dmesg | grep DMA ... id e0: BM-DMA at 0xf000-0xf007, BIOS set tings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xf008-0xf00f, BIOS

【Linux系统引导过程】

大兔子大兔子 提交于 2019-11-27 20:56:53
" *** 第一步 开机自检 根据主板BIOS中的启动顺序,移交系统控制权。 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。 这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。 *** 第二步 MBR引导 众所周知,硬盘上第 0 磁道第一个扇区被称为MBR,也就是Master Boot Record,即 主引导记录 ,它的大小是 512 字节,别看地方不大,可里面却存放了预启动信息、分区表信息。 系统找到BIOS所指定的硬盘的MBR后,就会将其复制到 0×7c00 地址所在的物理内存中。其实被复制到物理内存的内容就是 Boot Loader ,而具体到你的电脑,那就是 lilo 或者 grub 了。 换一种说法,首先会根据硬盘等个个扇区中MBR的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单。 *** 第三步 GRUB菜单 系统控制权传递给GRUB后,将会显示启动菜单,然后根据所选项或默认值加载Linux内核文件,最后将系统控制权转交给内核。 Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备