'cmp'命令如何工作?

我在大学里上过汇编课,但对一些基本操作不太了解(一开始我错过了几节课)。

我有一个打印数字的简单程序,这是程序:

.model  small
.stack   100h
.data

num  dw  -32768
numS db  6 dup(' '),'$'

.code
    mov ax, @data
    mov ds, ax

    mov ax, num
    mov bx, 10

    mov si, offset numS+5

next:
    cwd
    idiv    bx
    cmp dx, 0
    jge cont
    neg dx

cont:
    add dl, 48
    mov [si],   dl
    dec si
    cmp ax, 0
    jz  sof
    jmp next

sof:    
    cmp num,    0
    jge soff
    mov byte ptr[si],   '-'

soff:
    mov ah, 9
    mov dx, si
    int 21h
    .exit

end

我在其他网站上检查了cmp命令的功能,实际的算法是opr1-opr2 ...,因此在此程序中,我提醒了除法(放在dx中的ax / bx),并从中减零。 ?我不明白这里的比较是如何工作的..:/

请帮助我理解它,我是一个完整的初学者,并且被卡住了。

如果有人不介意总体上解释该程序,而将重点更多地放在比较上,那就太好了。

干杯

德韦恩·托威尔

cmp执行与执行的操作完全相同的操作sub,但不会将结果保存到目标寄存器中。但是,就像一样sub,它设置标志寄存器,该标志寄存器可以在后续的条件跳转操作中使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Unix:cmp命令出现问题

来自分类Dev

在 cp 命令中使用 if 语句 (cmp) 的输出

来自分类Dev

此usort cmp函数实际上如何工作?

来自分类Dev

如何在 PHPUnit 中测试 cmp()

来自分类Dev

如何为我的课程实现__cmp __()和__hash __()?

来自分类Dev

如何在Python 3中使用cmp()?

来自分类Dev

如何使用cmp从python 2转换为python 3?

来自分类Dev

如何正确签署 cmp 请求消息?(爪哇,充气城堡)

来自分类Dev

cmp命令返回EOF在我的输出上,尽管据我所知完全匹配

来自分类Dev

如何强制cmake使用CMP0077的新版本(允许从变量中设置选项)

来自分类Dev

如何为给定类型选择不同的std :: cmp :: Ord(或其他特征)实现?

来自分类Dev

如何在部件x86中使用cmp参数

来自分类Dev

CMP如何将比较值传递到bash脚本的下一行?

来自分类Dev

使用cmp或==比较列表

来自分类Dev

CMP和2的补码

来自分类Dev

Python cmp()函数

来自分类Dev

使用cmp或==比较列表

来自分类Dev

这对cmp()是否正确?

来自分类Dev

了解汇编中的 cmp

来自分类Dev

“ sudo”命令如何工作?

来自分类Dev

sed命令如何工作?

来自分类Dev

mail命令如何工作?

来自分类Dev

ps命令如何工作?

来自分类Dev

时间命令如何工作

来自分类Dev

清除命令如何工作?

来自分类Dev

“历史”命令如何工作?

来自分类Dev

历史命令如何工作?

来自分类Dev

tee命令如何工作?

来自分类Dev

“ su”命令如何工作?