微机原理常考实验(一)

以下展示微机原理常考实验。
正文开始:

一,下面程序段是统计AX中16位二进制数1的个数,并将结果放在CX中。

DATA SEGMENT  
 
DATA ENDS
 
CODE SEGMENT  
    
    ASSUME CS:CODE,DS:DATA
 
START:
 
    XOR AX,AX
 L1:AND AX,AX
    JZ EXIT 
    SHL AX,1
    JNC L2;
    INC CX
 L2:JMP L1  
    
EXIT:MOV AH,4CH
     INT 21H
     
CODE ENDS
     END START

二, 编写汇编程序,求出双字节数值的绝对值。双字长有符号数在A和A+2单元中,结果存放在B和B+2单元中,设A和B均为字变量。

DATA SEGMENT
    A DW A1,A2;两个字(一个双字)
    B DW ?,? 
 
DATA ENDS
 
CODE SEGMENT  
    ASSUME CS:CODE,DS:DATA
 
START:
    MOV AX,DATA
    MOV DX,AX
    MOV AX,A
    MOV DX,A+2
    CMP DX,0;最高位与0作比较大于0为负数
    JNS P1;最高位是0为正数跳P1 
    
    NOT AX;低字取反    ;NEG DX
    NOT DX;高字取反    ;NEG AX
    ;SBB DX,0
    ADD AX,1;取反末位加1 求绝对值就是求补就是取反末位加1
    ADC DX,0;高位假如产生进位--在高位上加上低字的进位位
    
 P1:MOV B,AX                      
    MOV B+2,DX
 
    MOV AH,4CH
    INT 21H
     
CODE ENDS
     END START

以上完结。

微机原理常考实验(一)_第1张图片

你可能感兴趣的:(开发语言,汇编,微机原理,算法,微机原理)