汇编自学 (15) 补码 jmp

来源:互联网 发布:php strtotime date 编辑:程序博客网 时间:2024/06/14 02:47
原文地址:(15) 补码 jmp">汇编自学 (15) 补码 jmp作者:冰力不足

为了避开 0 出现重码, 所以采用 补码 这种编码方法.

先确定 00000000b - 01111111b 表示 0 - 127 , 然后再用 按位取反 表示负数.

表达范围是 -128至 +127, 一共是 128 + 1 + 127 = 256个

最高位为 1 的表示负数 如: 10000000 、10010000 都是负数.

 

-20 的补码是多少呢?

-20 的绝对值是20, 20即 00010100b, 将 00010100b 取反即 11101011, 11101011加1等于 11101100

1. 打开计算器, 选择科学型, 选择10进制, 输入20.

2. 切换到2进制, 选择左上的"字节", 20变成10100.

3. 点 Not 键取反, 变成 11101011.

4. 加 1, 变成 11101100

[转载]汇编自学 <wbr>(15) <wbr>补码 <wbr>jmp

 

附注: 对计数器上按纽功能有不明白可以查看计算器上的 帮助, 或者右键点计算器上的按纽查看该键功能,

可以通过右键单击任意的“计算器”按钮,然后单击“这是什么?”来查看.

[转载]汇编自学 <wbr>(15) <wbr>补码 <wbr>jmp

 

[转载]汇编自学 <wbr>(15) <wbr>补码 <wbr>jmp

 

10000000b 表示多少呢? 因为高位是1, 证明是负数,

1. 切换到2进制, 选择 "字节".

2. 输入 10000000 后点 Not 键取反得到 1111111.

3. 加 1 等于 10000000.

4. 切换到 10进制, 可以看到是 128.

所以就是 -128.

 

//p317 

 

; jmp
assume cs:codesg

codesg segment

 start: mov ax, 0
      jmp short s
      add ax, 1

    s: incax

codesg ends

end start

 

//---------------------------

指令 "jmp short 标号" 功能为: (IP) = (IP) + 8位位移

指令 "jmp near 标号" 功能为: (IP) = (IP) + 16位位移

//p178 

阅读全文
0 0
原创粉丝点击