okliyubao 发表于 2019-10-31 19:51:16

关于汇编15.5的问题

关于汇编15.5的问题代码如下:
assume cs:code


stack segment
    db128 dup (0)
stack ends


code segment
start:mov ax,stack
      mov ss,ax
                mov sp,128
               
                push cs
                pop ds
               
                mov ax,0
                mov es,ax
               
                mov si,offset int9
                mov di,204h
                mov cx,offset int9end-offset int9
                cld
                rep movsb
               
                push movsb
               
                push es:
                pop es:
                push es:
                pop es:
               
                cli
                mov word ptr es:,204h
                mov word ptr es:,0
                sti
               
                mov ax,4c00h
                int 21h
               
   int9:push ax
      push bx
                push cx
                push es
               
                in al,60h
               
                pushf
                call dword ptr cs:         ;当此中断例程执行时(CS)=0
               
                cmp al,3bh                     ;F1的扫描码为3bh
                jne int9ret
               
                mov ax,0b800h
                mov es,ax
                mov bx,1
                mov cx,2000
          s:inc byte ptr es:
          add bx,2
                loop s
               
int9ret:pop es
      pop cx
                pop bx
                pop ax
                iret
               
int9end:nop


code ends
end start


这个程序编译会报错,error A2008:movsb 本人小白,求大神指点


jackz007 发表于 2019-10-31 20:27:19

本帖最后由 jackz007 于 2019-10-31 21:07 编辑

                rep movsb
               
                push movsb
               
                push es:
                pop es:
                push es:
                pop es:

      标成红色的指令肯定非法,楼主这条指令是什么意图啊?

      删掉这条指令就好了。

sbx 发表于 2020-9-8 20:15:08

学习了!!
页: [1]
查看完整版本: 关于汇编15.5的问题