项羽姓秦 发表于 2020-3-3 00:49:22

项羽姓秦《汇编检测点9.1》


;检测点9.1

; 1.程序如下:

assume cs:code

data segment
        db 0                ;因为jmp程序已加1,所以cs:ip只想第一条指令,data段中应该定义0为数据。
data ends

code segment
start:        mov ax,date
                mov ds,ax
                mov bx,0
                jmp word ptr
coode ends
end start

; 2.程序如下:

assume cs:code

data segment
        dd 12345678H
date ends

code segment
start:        mov ax,date
                mov ds,ax
                mov bx,0
                mov ,bx                        ;因为前面属于低地址ip,所以设置为0
                mov ,cs                ;加2后属于高地址,直接赋值cs
                jmp dword ptr ds:
code ends
end start

;执行后即为cs:ip的第一条指令

; 3.用debug查看内存,结果如下:

2000:1000 BE 00 06 00 00 00 ......

;则此时,CPU 执行指令:

mov ax,2000h
mov es,ax
jmp dword ptr es:

;后,(cs)= 0006H ,(ip)= 00BEH

;因为前面属于低地址,后面属于高地址,所以ip为00BEH,cs为0006H

人造人 发表于 2020-3-3 00:59:49

date还是data ?
code还是coode ?

项羽姓秦 发表于 2020-3-3 11:26:10

人造人 发表于 2020-3-3 00:59
date还是data ?
code还是coode ?

{:5_104:}严重错误,我擦
页: [1]
查看完整版本: 项羽姓秦《汇编检测点9.1》