汇编程序编写时 masm,link的问题解决
1、Extra characters on line
- 注释的用的";"是中文的 “;”
————————————————————————————————————————
2、Operand types must match(操作数于操作码不匹配)
- sto是字节 bx是字
————————————————————————————————————————
3、Must be index or base register([address]必须是数或寄存器)
- 所以我们可以mov [0000],ax
或
mov [ax],bx - [address]作为偏移量与段基址一起确定物理内存的地址
————————————————————————————————————————
4、error A2000: Block nesting error(数据段的定义时 起止段的名字不一致)
————————————————————————————————————————
5、Unable to open input file
- 再masm文件名的时候 文件名字可能打错了
6、error A2105:Expectedd:colon
error A:Missing or unreachable CS(assume时cs后面接的中文的":")
————————————————————————————————————————
7、error A2105:Expected:instruction or directive(期待完整结构或方向 )
- code end 结束时未能正常结束 应该是 code ends
- 或者如下 某些特定字符打错了
————————————————————————————————————————
8、error A2062:MIssing or unreachable CS
- assume,指定ds,cs时 中间的“,”被“ ”替代,往往于1、(第一条)一起出现
————————————————————————————————————————
**9、loop循环中不能直接对sto(数据段的标识符)进行操作
mov [sto],bl
inc sto(add sto,1)
数据段的标识符 sto不能自增或add
所以我们先
-
mov bx,offset sto;bx里面存sto 即数据段的偏移地址
-
loop循环中再用
mov [bx],ax
inc bx