汇编语言中“ segment at”的语法

问题描述 投票:0回答:1
newsegm segment at 0B800h
...
newsegm ends

您能描述什么意思吗?我还有另一个地址为0B800h的网段吗?我问的原因是:我有一个包含这些字符串的代码

lea DX, message 
message DB "Hello, World!",'$'  
VIDEO DD 0B800h:072Eh 

老师突出显示0B800h:072Ehmessage,并说要使用vidsegm段名编写一个表达式。我不知道他想要什么和做什么

assembly dos x86-16 tasm memory-segmentation
1个回答
0
投票

地址0B800十六进制是用于文本模式的视频段的起始地址。指令

newsegm segment at 0B800h
...
newsegm ends

定义此段地址的快捷方式。在此0B800视频段中,显示屏上的每个字符均由两个字节组成:颜色代码和字符代码。因此,第二个代码示例0B800h:072Eh中的地址指向[]

072Eh / 2 = 919d;每个字符两个字节919d / 80d = 11d;电话号码919d%80d = 39d;列号

它指向位置行11,第39列的char(从0开始)。

基本部分:

您可以在视频片段中的位置处使用字符[char],将手柄newsegm置于位置newsegm:072Eh
© www.soinside.com 2019 - 2024. All rights reserved.