编译错误:fatal error A1010:

封尘浪 2013-10-30 10:04:24

;---------------------------------------------------------------------------------
; Project: BinaryToDecimal.asm
; Name: zwp
; Date: 2013.10
;--------------------------------------------------------------------------------------------



program segment

assume cs:program


start:

push ds
sub ax, ax ; ax 清0
push ax


mov ch, 4 ; 高8位低8位分别赋值
rotate: mov cl, 4
rol bx, cl ; 循环左移4
mov al, bl

and al, 0fh
add al, 30h
cmp al, 3ah
jl print ; 若数据为0-9
add al, 7h ; 数字时A-F

print: mov dl, al
mov ah, 2 ; 显示输出函数
int 21h ; call DOS
dec ch ; ch--
jnz rotate ; 若不为0
ret ; return dos


end start

program end

: fatal error A1010: unmatched block nesting : program
OS: WIN7
IDE:MASMPlus
帮帮忙。
...全文
1287 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
封尘浪 2013-11-01
  • 打赏
  • 举报
回复
赞一个,搞好了
zara 2013-10-30
  • 打赏
  • 举报
回复
编译参数有问题,你这个是 dos16 类的程序,不应该有 /coff 选项的;我没有使用过 MasmPlus,具体操作步骤不了解了。
封尘浪 2013-10-30
  • 打赏
  • 举报
回复
首先:我想说声谢谢,谢谢你的回复,和指点。
但还是不行?
zara 2013-10-30
  • 打赏
  • 举报
回复
start: 后再加个冒号成 start:: 试试?稍高版本的都将标号局部化了,双冒号的标号被认为是全局性的。
封尘浪 2013-10-30
  • 打赏
  • 举报
回复
program ends end start Lin2001: unresolved external symbol _start 未定义外部符号start
zara 2013-10-30
  • 打赏
  • 举报
回复
将 program ends 调到 end start 语句之前试试?
zara 2013-10-30
  • 打赏
  • 举报
回复
刚才看了这个 Masmplus 觉得还是什么使用价值,调试功能没有,单文件属性设置没有。
如果一定要用,你这个,应该是新建个工程,类型选择后面的那个黑乎乎窗口的 DOS EXE 而非前面的那个,然后将这个文件加进去或者粘贴过去,不能用单文件模式或其它的类型。
另外,程序最后的那个 ret 应该明确地用 retf 指令,否则默认成了 retn 会出错。
封尘浪 2013-10-30
  • 打赏
  • 举报
回复
没事,我再想想

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧