马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
我在写王爽汇编语言的实验7时遇到一个问题 
 
 
在循环执行第二遍时 
程序在指向div指令这一步时 cs==078d ip==003d 这是对的 
但是在执行完除法这一步后 cs和ip就突然变成了野指针 指向一块无关的内存 为什么 
代码全文如下: 
 
assume cs:code,ds:data 
data segment 
        db '1975','1976','1977','1978','1979','1980','1981','1982','1983' 
        db '1984','1985','1986','1987','1988','1989','1990','1991','1992' 
        db '1993','1994','1995' 
         
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 
         
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 
        dw 11542,14430,15257,17800 
data ends 
 
table segment 
        db 21 dup ('year summ ne ?? ') 
table ends 
 
code segment 
start:        mov ax,data 
                mov ds,ax 
                mov ax,table 
                mov es,ax 
                mov bx,0 
                mov di,0 
                mov si,0 
                mov cx,21 
        s:        mov ax,ds:[di] 
                mov word ptr es:[bx].0h,ax 
                mov ax,ds:84[di] 
                mov word ptr es:[bx].5h,ax 
                 
                 
                add di,2 
                mov ax,ds:[di] 
                mov word ptr es:[bx].2h,ax 
                mov ax,ds:84[di] 
                mov word ptr es:[bx].07h,ax 
                 
                mov ax,ds:168[si] 
                mov word ptr es:[bx].0ah,ax 
                mov ax,ds:84[si] 
                mov dx,ds:84[si+2h] 
                div word ptr ds:168[si]                          出错      
                mov word ptr es:[bx].0dh,ax 
                 
                add di,2 
                add si,2 
                add bx,16 
                loop s 
                 
                mov ax,4c00h 
                int 21h 
code ends 
end start 
 
 |