assembly - 如何在 8086 汇编程序中包含有符号值?
问题描述
我在写的时候不明白包含有符号值的概念,例如写一个包含有符号值的代码(例如-12)然后返回它的绝对值(12)?
解决方案
如果在写入时包含有符号值,您的意思是在运行时从在键盘上键入它的用户那里读取有符号数值,那么程序必须解析该值,记住它是否以-符号开头,然后解析以下内容像往常一样使用数字,如果记住了符号- ,则否定最终值。
或者,如果请求绝对(非负)值,则应忽略该符号。
如果在写入时包含有符号值,您的意思是在汇编时从源文件中读取有符号数值,例如使用类似的指令MOV AX,-12
,那么汇编器会负责正确解析数字 -12。如果请求立即数的绝对值,则可以使用NEG AX
ifTEST AX,AX
设置 SignFlag 将其反转。但是每个理智的程序员都会在他/她的脑海中将数字转换为绝对值,而不是在运行时由 CPU 来做,当然。
推荐阅读
- .net - 使用 httpwebrequest 调用 ibm watson discovery adddocument api
- php - Campaign Monitor API - 自定义表单
- xaml - UWP 根据屏幕大小调整控件布局/位置
- java - Java如何管理夏令时?
- sql - 对象“ATM_BRANCH”没有文本
- android - 应用程序被 E/com.facebook.internal.AttributionIdentifiers 卡住
- ios - Cordova 访问没有应用程序 ID 的应用程序文件或访问以前的 ID 文件
- python - 在 django 模型中发送和接收信号
- javascript - for...in 与数组输出字符串而不是数字
- python - 生成没有 NaN 值的新 DataFrame