困惑灵魂 发表于 2011-6-3 16:54:09

实验12 坚持完成! 问个问题

assume这个开头起什么作用? 我不写好像也没什么事发生

个人推荐emu8086模拟器!!我都在这上面操作滴!assume cs:code

data segment ;不能超过256字节 200h-2ffh
hard:        mov ax,cs
        mov ds,ax
        mov si,200H + offset str ;字符偏移首地址
        mov ax,0b800h
        mov es,ax
        mov di,12*160+36*2
       
        mov cx,offset rear - offset str ;字符长度
s:        mov al,
        mov es:,al
        inc si
        add di,2
        loop s
       
        mov ax,4c00h
        int 21h
       
str:        db "3DMGAME.DiRT3.nocrack.RIP" ;中文好像不行
rear:   nop
data ends

code segment
start:       
      mov ax,data
      mov ds,ax
      mov si, 0
      
      mov ax,0
      mov es,ax
      mov di,200h
      
      mov cx,offset rear - offset hard ;拷贝段长度
      cld
      rep movsb
      ;写入入口地址
      mov ax,0
      mov es,ax
      mov word ptr es:,200h
      mov word ptr es:,0
      
      ;下面是除法溢出
      mov ax,1000h
      mov bh,1
      div bh

      mov ax,4c00h
        int 21h
       
code ends
        end start

loop 发表于 2011-6-4 00:39:23

本帖最后由 loop 于 2011-6-4 01:01 编辑

assume 是“假设”的意思,它假设关联某一段寄存器和程序中的某一个用segment ……ends定义的段相关。
通过assume 说明这种关联,在需要的情况下,编译程序可以将段寄存器和某一个具体的段相联系。

第四章,第一小节。。。
页: [1]
查看完整版本: 实验12 坚持完成! 问个问题