. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  为什么我用汇编写的程序会有很大的cpu占用率  [待解决] 回复[ 8次 ]   点击[ 1280次 ]  
hygf99
[帖 主]   [ 发表时间:2009-12-22 23:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
我的机器配置不算太低,但是用汇编写的一个hello world都会有百分百的cpu占有率,这是为什么呢?用c写不会这样。
willflyz
[第1楼]   [ 回复时间:2009-12-25 10:29 ]   [引用]   [回复]   [ top ] 
荣誉值:12
信誉值:0
注册日期:2009-02-14 14:25
太神奇了,把你的代码发出来看看
lifeiscool
[第2楼]   [ 回复时间:2009-12-28 21:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-28 20:25
神奇的代码
hygf99
[第3楼]   [ 回复时间:2010-01-08 23:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
data  segment                     ;和hello world差不多的
      disp    db'good!'
      data    ends
code  segment
assume cs:code,ds:data
start:
      mov    ax,data
      mov    ds,ax
      mov    ax,0b800h
      mov    es,ax
      mov    al,disp[0]
      mov    es:[146h],al
      mov    byte ptr es:[147h],1eh
      mov    al,disp[1]
      mov    es:[148h],al
      mov    byte ptr es:[149h],1eh
      mov    al,disp[2]
      mov    es:[14ah],al
      mov    byte ptr es:[14bh],1eh
      mov    al,disp[3]
      mov    es:[14ch],al
      mov    byte ptr es:[14dh],1eh
      mov    al,disp[4]
      mov    es:[14eh],al
      mov    byte ptr es:[14fh],1eh
      mov    ah,00h
      int    16H
      mov    ah,4ch
      int    21h
code  ends
end   start

我试过了,如果用INT 16H,则在程序启动的时候,会有一小会的cpu高占用率;但是若换成了INT 21H,则完全不会出现上述情况。我知道INT 16H是BIOS中断,INT 21H是DOS中断;但是为什么用BIOS中断就会出现高cpu占用率呢?兼容问题?
33715162
[第4楼]   [ 回复时间:2010-01-15 14:06 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-01-15 13:49
改下就是病毒呵呵
hygf99
[第5楼]   [ 回复时间:2010-01-22 21:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
额,或许到别人的机器上连运行都不允许,直接来个程序错误
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
regex
[第6楼]   [ 回复时间:2010-01-23 00:37 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
楼主高人~~~哈哈
zj14957
[第7楼]   [ 回复时间:2010-02-01 17:15 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-02-01 14:09
应该是 命令提示符 CMD 程序的问题.
我一起也出现过 楼主说的情况
就 一个 hello  world 就 cpu 100% 了...
应该是 windows 环境 和dos 环境的某个地方有问题
凭空 猜测 我也不清楚!
hygf99
[第8楼]   [ 回复时间:2010-02-11 16:05 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-10-17 21:41
看到了吧,并不是我胡说,真有这样的情况
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved