当前位置:  技术问答>linux和unix

关于汇编语言中的标号和变量

    来源: 互联网  发布时间:2017-04-08

    本文导语:  %include "pm.inc" ; 常量, 宏, 以及一些说明 org 0100h jmp LABEL_BEGIN [SECTION .gdt] ; GDT ;                                         段基址,      段界限     , 属性 LABEL_GDT: Descriptor        0,        ...


%include "pm.inc" ; 常量, 宏, 以及一些说明

org 0100h
jmp LABEL_BEGIN

[SECTION .gdt]
; GDT
;                                         段基址,      段界限     , 属性
LABEL_GDT: Descriptor        0,                0, 0      ; 空描述符
LABEL_DESC_CODE32: Descriptor        0, SegCode32Len - 1, DA_C + DA_32 ; 非一致代码段, 32
LABEL_DESC_VIDEO: Descriptor  0B8000h,           0ffffh, DA_DRW ; 显存首地址
; GDT 结束

GdtLen equ $ - LABEL_GDT ; GDT长度
GdtPtr dw GdtLen - 1 ; GDT界限
dd 0 ; GDT基地址

; GDT 选择子
SelectorCode32 equ LABEL_DESC_CODE32 - LABEL_GDT
SelectorVideo equ LABEL_DESC_VIDEO - LABEL_GDT
; END of [SECTION .gdt]

[SECTION .s16]
[BITS 16]
LABEL_BEGIN:
mov ax, cs
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0100h

; 初始化 32 位代码段描述符
xor eax, eax
mov ax, cs
shl eax, 4
add eax, LABEL_SEG_CODE32
mov word [LABEL_DESC_CODE32 + 2], ax
shr eax, 16
mov byte [LABEL_DESC_CODE32 + 4], al
mov byte [LABEL_DESC_CODE32 + 7], ah



我的问题:
1.对于最后四行代码中的标号LABEL_DESC_CODE32表示内存首地址还是相对于基址的偏移量?
2.对于声明GdtPtr的时候貌似加不加冒号都无所谓
3.org使程序指针的偏移量置为0100h,那么段基址是多少?

|
1.对于最后四行代码中的标号LABEL_DESC_CODE32表示内存首地址还是相对于基址的偏移量?
=> 基址的偏移
2.对于声明GdtPtr的时候貌似加不加冒号都无所谓
=> 这个属于汇编语言编写问题
3.org使程序指针的偏移量置为0100h,那么段基址是多少?
=> org不作用于PC指针,它会告诉汇编器将org下面产生的机器码按照.text文本段开始位置进行偏移;段基址不变

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问有没有用AT&T汇编语法讲汇编语言的书?
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • 如何在VIM中使汇编语言和C语言自动缩进?
  • 高分求助:linux内核中的汇编语言和Dos或windows下的汇编是一样的吗,有这方面的书或资料可供学习吗,分不够可再加,决不食言
  • 如何使用汇编语言
  • 如何得到C语言代码对应的汇编代码?
  • 在gcc编程中怎样嵌入汇编语言?
  • 不会汇编语言,想学习Linux内核网络部分的代码可以嘛?
  • linux下的汇编语言的软件是什么?
  • Linux中奇怪的汇编语言?
  • 如果linux下的C语言中嵌入汇编成程序,GCC需要什么样的参数?
  • 求助VxWorks下C语言中如何嵌入汇编
  • 请问Linux2.6版本里用什么汇编语言??钱不多了,谢谢大家了!!!
  • 想了解LINUX一定能明白汇编语言吗?
  • Unix C支持嵌入汇编语言吗?
  • 请问linux中的arch/i386/kernel/head.S的汇编语言是用什么编译的
  • 那有Richard Blum 马朝辉译的《汇编语言程序设计〉的电子版下载
  • XML 的汇编语言 Xembly
  • 汇编语言rep movsd 的使用详解
  • 请教高人:AT&T汇编语言中把.byte .word .long的问题?
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • linux中所用的汇编怎么和我们学的汇编不一样?
  • linux内核源代码中的汇编部分与其他汇编有不同的地方吗?
  • 有没有at@t汇编格式和intel 汇编格式互相转换的工具啊!
  • gcc和objdump能生成Intel汇编吗?AT&T格式汇编看着不太习惯
  • 请教,X86汇编转AT&T汇编,急急
  • ARM汇编中的里的SUBS,后面的S是什么意思?顺便求本汇编的好书。
  • 如何将ARM汇编代码变成GNU汇编?
  • 强力推荐一本LINUX下汇编(即AT&T汇编)的新书
  • 请问一下,汇编器as是否就是gas?
  • 请问各位大虾,如何在linux环境下学习汇编?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,