实验六

代码如下

assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
        dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
        db '1. display      '
        db '2. brows        '
        db '3. replace      '
        db '4. modify       '
datasg ends
codesg segment
        start:mov ax,datasg
              mov ds,ax
              mov ax,stacksg
              mov ss,ax
              mov sp,10h
              mov bx,3h
              mov cx,4h
              s0:push cx
                 mov si,0
                 mov cx,4h
                 s:mov al,[bx+si]
                   and al,11011111b
                   mov [bx+si],al
                   inc si
                   loop s
                   pop cx
                   add bx,10h
                   loop s0
              mov ax,4c00h
              int 21h
 codesg ends
 end start

值得注意的是,一开始我觉得为什么需要两个变量来表示IP的变化呢?如果只用bx的话,虽然一开始可以通过inc加一,然后到等cx变成0后,又让add bx,10h。然后继续bx加一。问题就在这里,此时的bx已经不是从3开始了,而是从6开始.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容