奥普瓯江 发表于 2019-2-23 09:37:14

监测点11.4

本帖最后由 奥普瓯江 于 2019-2-23 09:36 编辑

assume cs:code

code segment
start:
                mov ax, 0         ;把0放入ax中
                push ax                                ;把ax压入站中
                popf                                ;把站中的数据取出放入标志寄存器中,在8086中标志寄存器我只找到8位分别在第0位CF、第2位PF、第4位AF、第6位ZF、第7位SF、第9位IF、第10位DF、第11位OF,现在寄存器中全部标注为0
                mov ax, 0fff0h                ;把0fff0传给ax
                add ax, 0010h                ;ax于0010相加这里0fff0h为-16的补码0010为16所以他们相加后等于0
                pushf                                ;将标志寄存器中的数据压入站中标志寄存器的数据分别是00000000 01000101
                pop ax                                ;将站中的数据取出放入ax中 ax=00000000 01000101
                and al, 11000101B   ;and 01000101,11000101B = 01000101B 低位
                and ah, 00001000B   ;and 00000000,00001000B = 00000000B 高位
               
                mov ax, 4C00h
                int 21h
code ends
end start
最后ax=00000000B 01000101B
16进制的是0045H

Snxsky 发表于 2021-4-22 14:08:33

汇编里面存放的都是补码形式吗

奥普瓯江 发表于 2021-6-7 16:39:46

Snxsky 发表于 2021-4-22 14:08
汇编里面存放的都是补码形式吗

汇编里面数值一般都是以补码形式存放(数值哦)

奥普瓯江 发表于 2021-6-7 16:40:40

Snxsky 发表于 2021-4-22 14:08
汇编里面存放的都是补码形式吗

使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理
页: [1]
查看完整版本: 监测点11.4