不正常人类 发表于 2012-9-24 22:21:01

求助汇编,汇编语言程序12.3理解

王爽老师,汇编语言第二版
程序12.3
为什么段地址是cs,而不是0000h
偏移地址又变成0202h,
为什么一个是程序的段地址,而偏移地址又是中断向量表的偏移地址
这怎么对应上的

一个人 发表于 2012-9-25 09:44:23

我跟你有一样的疑问… 而且我用mov ax,cs不能实现 用mov ax,0就能实现 感觉是书上错了

不正常人类 发表于 2012-9-25 18:40:13

一个人 发表于 2012-9-25 09:44 static/image/common/back.gif
我跟你有一样的疑问… 而且我用mov ax,cs不能实现 用mov ax,0就能实现 感觉是书上错了

好像cs和0都可以,比如下面这段代码
assume cs:code

code segment
    start:mov ax,cs
          mov ds,ax
          mov ax,0
          mov es,ax
          mov si,offset do0
          mov di,200h
          mov cx,offset do0end -offset do0
          cld
          rep movsb
          mov ax,0
          mov es,ax
          mov word ptr es:,200h
          mov word ptr es:,0
      
          mov ax,1000h
          mov bl,1
          div bl
         
          mov ax,4c00h
          int 21h
         
         
         
      do0:jmp short do0start
          db "overflow!"
         
do0start:mov ax,0      ;mov ax,cs也行
          mov ds,ax
          mov si,202h
         
          mov ax,0b800h
          mov es,ax
          mov di,12*160+36*2
          mov cx,9
         
      s:mov al,
          cmp di,8+12*160+36*2
          mov es:,al
          jb s1
          jnb s2   
       s1:mov es:,2h
         inc si
         add di,2
         loop s
       s2:mov es:,4h
         inc si
         add di,2
         loop s   
         
         mov ax,4c00h
         int 21h
       do0end:nop
code ends
end start
         
         

一个人 发表于 2012-9-26 10:09:58

我也不知道那里为什么要用CS 我感觉是用0

阔怀 发表于 2015-8-20 16:19:07

帮顶
页: [1]
查看完整版本: 求助汇编,汇编语言程序12.3理解