首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

哪位高手来帮小弟我看看这个汇编程序

2012-03-01 
谁来帮我看看这个汇编程序题目:从设备数据端口、状态端口、控制端口(70H,71H,72H).从设备输入100B数据,存入b

谁来帮我看看这个汇编程序
题目:从设备数据端口、状态端口、控制端口(70H,71H,72H).从设备输入100B数据,存入buffer为首的地址缓冲区,如果启动1s后仍未完成一次输入,则视为超时显示出错信息。以下是我写的程序,但是老是报告Segmentation fault错误。高手指点下,明天就要交作业了。

Assembly code
.section .dataoutput:    .asciz    "TIME IS OUT , TERMINATE!".section .bss    .lcomm buffer,    100.section .text.globl mainmain:        #检测是否启动设备NotStart:    inb     $0x72 ,  %al        testb     $0x1  ,  %al        jz    NotStart                #设定循环计算器,每次传送4个字节        movl    $25,  %ecx         movl    $buffer,%ebx        movl    $1000,    %edx #我假设循环1000次为1秒        #检测设备准备就绪,每次读取时都要检测READ:NotReady:        decl    %edx        testl    $1    ,  %edx        jz    TIMEOUT        movl    $0    ,  %eax        inb    $0x71 ,     %al #从71H端口读取状态        testb    $0x1  ,  %al # 1 准备就绪        jz    NotReady            #读取数据信息        inl    $0x70 ,  %eax        movl    %eax   , %ebx        incl    %ebx        loop    READ        jmp    EXITTIMEOUT:            pushl    $output        call    printf        addl    $4,    %espEXIT:        movl     $1,    %eax        movl    $0,    %ebx        int    $0x80




[解决办法]


oh,my lady gaga!

汇编。。。

神啊
[解决办法]
汇编还不如门,待高手。。。
[解决办法]
跟踪一下,看在哪儿出的错
[解决办法]
段错误,看看你当前操作的段是哪个。

热点排行