鱼C论坛

 找回密码
 立即注册
查看: 1701|回复: 2

汇编语言 王爽的 10.5(2)

[复制链接]
发表于 2014-3-17 17:06:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
检测点10.5

(2)下面的程序执行后,ax和bx中的数值为多少?

assume cs:codesg

stack segment

    dw 8 dup(0)

stack ends

codesg segment

start:

    mov ax,stack

    mov ss,ax

    mov sp,10h

    mov word ptr ss:[0],offset s ;(ss:[0])=1ah

    mov ss:[2],cs                ;(ss:[2])=cs

    call dword ptr ss:[0]        ;cs入栈,ip=19h入栈,转到cs:1ah处执行指令

                                 ;(ss:[4])=cs,(ss:[6])=ip

    nop

s:  mov ax,offset s              ;ax=1ah

    sub ax,ss:[0ch]              ;ax=1ah-(ss:[0ch])=1ah-19h=1

    mov bx,cs                    ;bx=cs=0c5bh

    sub bx,ss:[0eh]              ;bx=cs-cs=0

    mov ax,4c00h

    int 21h

codesg ends

end start

但是NOP起什么作用呢
BS我算出来了是0
AX是怎么算的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-21 16:24:17 | 显示全部楼层
Nop占一个字节 这题ax其实就是s的地址-nop的地址=1
执行sub ax,ss:[0ch]前ss栈的内容ss:0e=cs ss:0c=call 后面一条指令的地址(即nop的地址)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-21 20:42:50 | 显示全部楼层
nop CPU不执行,只起到占位数的作用:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 00:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表