微机原理 常考实验 第(二)弹~

1,已知在AX,BX中放32位有符号的二进制数,求其绝对值送入CX,DX中,其中AX,CX放高位。

分析:就是 AX: BX双字的绝对值放到CX: DX的双字中

(1)先判断AX,BX是不是为正,为正直接绝对值给CX,DX

(2)假如AX,BX为负求绝对值

(3)负数求绝对值 就是对这个数求补指令NEG opr;0减opr操作数

(4)这是个双字,系统只有16位,先0-低四位有借位,0-高位时还要减去借位。

(5)求补指令NEG 求补就是取反加一 低四位取反加一可以用,高四位取反加一不能用,

一个双字负数绝对值是这四条指令

复制代码
    NOT DX  ;低位取反加一
    NOT CX
    ADD DX,1 ;低位取反加一
    ADC CX,0;高位加上进位位

2,在1的基础上又另一题:已知BUF单元中字是低位,BUF+2单元中字是高位,双字32位求补。将BUF缓冲区中的32位数据取绝对值存回原单元。

复制代码
    MOV AX,BUF+2
    CMP AX,0
    JNS L ;AX为正转L
    MOV BX,BUF
    NOT BX;低位取反
    ADD BX,1
    MOV BUF,BX
    NOT AX  ;高位取反
    ADC AX,0  ;考虑低位部分的进位
    MOV BUF+2,AX
  L:..  

3,判断16位字value正负,求绝对值

分析:16位是一个字,直接NEG求补就行

复制代码
    MOV AX,VALUE
    TEST AX,AX;是负数吗同时CF=0
    JNS L ;AX为正转L
    NEG AX ;求补求绝对值 
  L:...

4,

相关推荐
qeen876 分钟前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
从零开始的嵌入式之旅25 分钟前
day47
arm开发·经验分享·笔记·嵌入式硬件
陈年老古董1 小时前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
彧azz1 小时前
操作系统时间管理与系统核心板块学习总结
c语言·笔记·学习·系统架构
zhangrelay2 小时前
《机器人控制器设计与编程》课程习题资料-2026
linux·笔记·学习·ubuntu
志尊宝2 小时前
Vue3 零基础每日笔记(055):组件里正确使用 store——storeToRefs 解构与 $patch 批量修改
笔记·vue·html·前端开发·软件开发
kkkkkkkkkk_Z2 小时前
新手自学嵌入式|学习日记:从C语言到51单片机基础(GPIO、中断、定时器与PWM篇)
linux·笔记·学习·51单片机
陈年老古董3 小时前
微博情感分析项目学习笔记
笔记·python·学习·机器学习·项目
2601_960631233 小时前
如何用公开数据接口查询制药企业资质信息
笔记
小刘在重生~3 小时前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试