汇编语言答案与笔记

实验六

2017-07-09  本文已影响13人  c3f53297fc45

代码如下

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开始.

上一篇 下一篇

猜你喜欢

热点阅读