ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实验4 8086标志寄存器及中断

2021-12-06 20:34:42  阅读:243  来源: 互联网

标签:8086 中断 mov si add 寄存器 ax data inc


实验4 8086标志寄存器及中断

实验任务1

任务点1

验证add对ZF和CF的影响


可以看到对ZF和CF都造成了影响

验证inc对ZF和CF的影响


只对ZF造成影响

测试代码如下

assume cs:code,ds:data
data segment
    db 16 dup(0)
data ends
stack segment
    db 128 dup(0)
    top equ $+1
stack ends
code segment
start:
    mov ax,data
    mov ds,ax
    mov ax,stack
    mov ss,ax
    mov sp,top

    mov ax,0ffffh
    add ax,1
    ;测试add对CF和ZF的影响

    mov ax,1
    add ax,1
    ;恢复测试之前的影响,即无进位

    mov ax,0ffffh
    inc ax
    ;测试inc对CF和ZF的影响
    mov ah,4ch
    int 21h
code ends
end start

任务点2

TASK_1.ASM代码

assume cs:code, ds:data

data segment
   x dw 1020h, 2240h, 9522h, 5060h, 3359h, 6652h, 2530h, 7031h;一个128位数字
   y dw 3210h, 5510h, 6066h, 5121h, 8801h, 6210h, 7119h, 3912h;一个128位数字
data ends
code segment 
start:
    mov ax, data
    mov ds, ax
    mov si, offset x
    mov di, offset y
    call add128

    mov ah, 4ch
    int 21h

add128:
    push ax
    push cx
    push si
    push di

    sub ax, ax

    mov cx, 8
s:  mov ax, [si]
    adc ax, [di]
    mov [si], ax

    inc si
    inc si
    inc di
    inc di
    loop s

    pop di
    pop si
    pop cx
    pop ax
    ret
code ends
end start

对于inc能否用add替换的回答

inc的结果

add的结果

可以看到没有任何区别,这是因为代码中给出的数据不会产生任何进位,所以addinc在这种特殊的情况下无区别
下面修改代码里面的数据,使其能产生进位

data segment
   x dw 9020h, 2240h, 9522h, 5060h, 3359h, 6652h, 2530h, 7031h
   y dw 9210h, 5510h, 6066h, 5121h, 8801h, 6210h, 7119h, 3912h
data ends

inc的结果

add的结果

这就有了区别了
后16位的运算需要用到前16位运算的进位值,所以不能用add
因为根据之前的实验,add会对CF标志寄存器造成影响,inc则不会。

运行并观察数据段的变化

做加法之前

做加法后

可以看到进行了加法,但并没有产生进位

标签:8086,中断,mov,si,add,寄存器,ax,data,inc
来源: https://www.cnblogs.com/alyjay/p/15651704.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有