项羽姓秦《汇编检测点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
date还是data ?
code还是coode ? 人造人 发表于 2020-3-3 00:59
date还是data ?
code还是coode ?
{:5_104:}严重错误,我擦
页:
[1]