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

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,

相关推荐
软件技术NINI13 小时前
盗墓笔记html+css+js 2页
css·笔记·html
智者知已应修善业14 小时前
【用D触发器组成000-001-010-011-100】2025-6-7
驱动开发·经验分享·笔记·硬件架构·硬件工程
纪念 22914 小时前
数据库基础
数据库·笔记·学习方法
AnsonNie14 小时前
处理提示“wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。”【笔记】
笔记
山城码农笑松哥14 小时前
Redis 8.8 新特性实操笔记:原生数组、INCREX 限流、XNACK 流处理
redis·笔记·junit
xqqxqxxq15 小时前
SQL 字段约束笔记
android·笔记·sql
神龙天舞200116 小时前
CMake构建学习笔记-通用的CMake构建脚本
笔记·学习
Seven_Ting17 小时前
React-Hooks笔记
前端·笔记·react.js
AOwhisky17 小时前
Linux(CentOS)系统管理入门笔记(第二十一期)——防火墙管理(Firewalld)——zone、服务端口、富规则与端口转发
linux·运维·笔记·安全·centos·防火墙
腾飞开源17 小时前
01_K8s干货笔记之认识K8s
运维·笔记·云原生·容器·kubernetes·k8s·容器化部署