MASM为8086,符号未定义:ffh

时间:2017-03-15 04:06:56

标签: assembly x86 masm 16-bit

代码是:

curl
  1. 在第3行说错误

      

    未定义符号:.model small .data ar db ffh .code mov ax,@data mov ds,ax mov ah,00h mov al,ar mov bl,40h clc adc ax,bx mov ah,4ch int 21h end

    我不明白它是如何识别ffh只是一个十六进制数。

  2. 另外,请告诉我最后a0h是否会在没有携带的情况下存入携带或总和的金额。因为我很困惑ax是否通过自己的添加或任何先前影响进位标志的指令来设置CF.

2 个答案:

答案 0 :(得分:1)

使用0ffh,因为如果您只写ffh,汇编程序会混淆它的数字或变量名。

答案 1 :(得分:-1)

使用0ffh代替ffh,你会得到。

以下是示例代码...

.model small

.stack 64

。数据

ar db 0ffh

.CODE

主要远程

mov ax,@ data

mov ds,ax

mov啊,00h

mov al,ar

mov bx,40h

adc ax,bx

mov啊,4c00h

int 21h

main endp

结束主要

ax将存储到ffffh,如果你在ax中添加两个数字,结果大于ffffh(十进制数为65535),那么carry将包含msb数字。

例如:

mov ax,1234

添加ax,2345

;然后ax将有1234 + 2345 = 3579

但是如果

mov ax,fffeh

add ax,03h

;然后ax将有0001并且进位标志将包含1。