曾辰 发表于 2015-10-21 19:13:11

在用寄存器cx进行计数时,怎么防止其他代码更改它的值?

assume cs:code
code segment

start:
        mov ax,0ffffH
        mov ds,ax
        mov bx,0
        mov cx,12
        mov dx,0
       
        s:
       mov al,ds:
       inc bx
       mov ah,0
       add dx,ax
       
loop s

mov ax,4c00H
int 21H

我在学上面这段累加算法代码时,突然想到,如果在多任务系统中,上面这段程序运行被暂停,突然跳到其它程序,如果其他程序把cx的值更改了,那原来这段代码不是就出现问题了吗?这一点很令我费解。

康小泡 发表于 2015-10-21 21:22:52

想弄懂这个,你就去学操作系统原理吧。

y290176346 发表于 2015-10-21 23:00:04

我觉的栈能解决你说的这个问题,原理是,他如果干别的,就会先把cx保存起来
页: [1]
查看完整版本: 在用寄存器cx进行计数时,怎么防止其他代码更改它的值?