首页 > 解决方案 > 如何在 8086 汇编程序中包含有符号值?

问题描述

我在写的时候不明白包含有符号值的概念,例如写一个包含有符号值的代码(例如-12)然后返回它的绝对值(12)?

标签: assemblysignedemu8086

解决方案


如果在写入时包含有符号值,您的意思是在运行时从在键盘上键入它的用户那里读取有符号数值,那么程序必须解析该值,记住它是否以-符号开头,然后解析以下内容像往常一样使用数字,如果记住了符号- ,则否定最终值。
或者,如果请求绝对(非负)值,则应忽略该符号。

如果在写入时包含有符号值,您的意思是在汇编时从源文件中读取有符号数值,例如使用类似的指令MOV AX,-12,那么汇编器会负责正确解析数字 -12。如果请求立即数的绝对值,则可以使用NEG AXifTEST AX,AX设置 SignFlag 将其反转。但是每个理智的程序员都会在他/她的脑海中将数字转换为绝对值,而不是在运行时由 CPU 来做,当然。


推荐阅读