trump 发表于 2014-6-29 21:49:06

检测点10.5

本帖最后由 trump 于 2014-6-29 21:49 编辑

(1) 下面的程序执行后,ax中的数值为多少?(注意:用call指令的原理来分析,不要在Debug中单步跟踪来验证你的结论。对于此程序,在Debug中单步跟踪的结果,不能代表CPU的世纪执行结果。)assume cs:codesg
stacksg segment
      dw 8 dup (0)
stacksg ends
codesg segment
start:      
      mov ax,stacksg
      mov ss,ax
      mov sp,16
      mov ds,ax
      mov ax,0
      call word ptr ds:
      inc ax
      inc ax
      inc ax
      
      mov ax,4c00h
      int 21h
codesg ends
end start"call word ptr ds:"执行后(ss:)=0011h("inc ax"内存地址偏移量)。即(ds:=0011h。
因此,ax中的数值为3。

(2) 下面的程序执行后,ax和bx中的数值为多少?
assume cs:codesg
stacksg segment
        dw 8 dup (0)
stacksg ends
codesg segment
start:       
        mov ax,stacksg
        mov ss,ax
        mov sp,16
        mov word ptr ss:,offset s
        mov ss:,cs
        call dword ptr ss:
        nop
s:
        mov ax,offset s
        sub ax,ss:
        mov bx,cs
        sub bx,ss:
       
        mov ax,4c00h
        int 21h
codesg ends
end start"mov word ptr ss: offset s"执行后(ss:)=001ah。
"call dword ptr ss:"执行后(ss:)=0019h("nop"内存地址偏移量),(ss:)=(cs)。
"sub ax,ss:"执行后(ax)=1。
"sub bx,ss:"执行后(bx)=0。

篮球火 发表于 2014-12-8 19:40:21

检测点10.5太难了

trump 发表于 2014-12-14 15:59:32

篮球火 发表于 2014-12-8 19:40
检测点10.5太难了

Keep on

来玩球吧g 发表于 2020-1-31 11:02:15

刚把得

gang19840815 发表于 2020-2-25 22:34:46

太难了 有点乱
页: [1]
查看完整版本: 检测点10.5