鱼C论坛

 找回密码
 立即注册
查看: 2270|回复: 3

检测点10.5

[复制链接]
发表于 2013-10-28 17:23:40 | 显示全部楼层
本帖最后由 LinuxDeepin 于 2013-10-28 20:48 编辑

assume cs:code

        stack segment
                dw 8 dup(0)
        stack ends
        
        code segment
                start:
                        mov ax,stack                                 ;; 栈段分配 16 个字节,sp = 0010 H
                        mov ss,ax
                        mov sp,16
                        
                        mov word ptr ss:[0],offset s         ;; s 标号物理地址写入 ss:[0] 处
                        mov ss:[2],cs
                        
                        call dword ptr ss:[0]                     ;; 跳转到 ss:[0] 指定的物理地址处,                                                                                                                                        并将下一条指令的物理地址入栈, sp-4 = 000c H

                        nop                                               ;; nop 空指令,占用一个字节
                        
                s:      mov ax,offset s                             ;; s 标号偏移地址写入 ax 寄存器,
                        sub ax,ss:[0cH]                              ;; ss:[0cH] call 下一条代码的偏移地址与 ax 相减             ax = 0001 H
                        
                        mov bx,cs                                      ;; cs 段地址写入 bx 寄存器
                        sub bx,ss:[0eH]                              ;; ss:[0eH] call 下一条代码的段地址与 bx 相减                bx = 0000 H
                        
                        mov ax,4c00H
                        int 21H
        code ends
        
end start



小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-20 12:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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