Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 法律数据分段构造_Assembly_X86 16_Data Segment - Fatal编程技术网

Assembly 法律数据分段构造

Assembly 法律数据分段构造,assembly,x86-16,data-segment,Assembly,X86 16,Data Segment,我想在以下问题上获得一些帮助: 以下数据段定义的正确性和合法性: data segment x db -23, 3 or 4, not -3, 9 xor 15, 129, $+x, SEG x, -128 LT 80h db -129, x+1, b2h, 256, 7852h, byte ptr z y dw z-2, -7852h, x[2], offset bx z dd z-y, FAR PTR y data ends 我考虑以下错

我想在以下问题上获得一些帮助: 以下数据段定义的正确性和合法性:

data segment 
     x db -23, 3 or 4, not -3, 9 xor 15, 129, $+x, SEG x, -128 LT 80h 
     db -129, x+1, b2h, 256, 7852h, byte ptr z 
     y dw z-2, -7852h, x[2], offset bx 
     z dd z-y, FAR PTR y 
data ends 
<>我考虑以下错误:

- cant contain operations:  3 or 4, not -3, 9 xor 15,  FAR PTR y, offset bx ...
- cant reference same varaible : $+x
并且正确:

- -23, 129, 7852h ...
- a db 'abc'
  lengthOfa EQU ($-s) 

这个事实我说得对吗?

为什么不让汇编程序回答呢
x
y
z
只是标签,不是变量。因此,您可以将这些值分开,并将它们写在几行中。考虑保留声明(<代码> db <代码>,<代码> dw < /代码>,<代码> DD/<代码>)。构建程序集源文本,让它进行汇编并查看哪一行包含哪一个错误:

data segment
     x db -23
     db 3 or 4
     db not -3
     db 9 xor 15
     db 129
     db $+x         ; TASM: Can't add relative quantities - MASM: error A2101: cannot add two relocatable labels
     db SEG x       ; TASM: Not expecting group or segment quantity - MASM: error A2071: initializer magnitude too large for specified size
     db -128 LT 80h

     db -129
     db x+1         ; TASM: Expecting scalar type - MASM: error A2071: initializer magnitude too large for specified size
     db b2h         ; TASM: Undefined symbol: B2H - MASM: error A2006: undefined symbol : b2h
     db 256         ; TASM: Value out of range - MASM: error A2071: initializer magnitude too large for specified size
     db 7852h       ; TASM: Value out of range - MASM: error A2071: initializer magnitude too large for specified size
     db byte ptr z  ; TASM: Expecting scalar type - MASM: error A2071: initializer magnitude too large for specified size
     y dw z-2
     dw -7852h
     dw x[2]
     dw offset bx   ; TASM: Illegal use of register - MASM: error A2032: invalid use of register
     z dd z-y
     dd FAR PTR y
data ends

code segment
start:
    ret
code ends

end start

很好,我忘记了我可以向我的链接器和编译器添加标志…:)