(1)编译连接后再debug中加载跟踪后



书上填空如下,程序返回前data段中的数据不变

(2)汇编连接后


书上填空,

(3)汇编连接后


书上填空

(4)修改代码后只有(3)可以实现,(3)中的code段在data段和stack段之前



(5)
assume cs:code a segment db 1,2,3,4,5,6,7,8 a ends b segment db 1,2,3,4,5,6,7,8 b ends c1 segment db 8 dup(0) c1 ends code segment start: mov ax,a mov ds,ax mov ax,b mov ss,ax mov ax,c1 mov es,ax mov bx,0 mov cx,8 s: mov al,ds:[bx] add al,ss:[bx] mov es:[bx],al inc bx loop s mov ax,4c00h int 21h code ends
① 在实现数据相加前,逻辑段 c 的 8 个字节

② 执行完实现加运算的代码后,逻辑段 c 的 8 个字节

结果正确
(6)
assume cs:code a segment dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh a ends b segment dw 8 dup(0) b ends code segment start: mov ax,a mov ds,ax mov ax,b mov ss,ax mov sp,10h mov bx,0 mov cx,8 s: push ds:[bx] add bx,2 loop s mov ax,4c00h int 21h code ends end start
① 在 push 操作执行前,查看逻辑段 b 的 8 个字单元信息截图

② 执行 push 操作,然后再次查看逻辑段 b 的 8 个子单元信息截图

结果正确
总结:我还是不太明白为什么第(4)个的原因,只有模糊的概念。
真的太为难了。
浙公网安备 33010602011771号