- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对一个数组元素求和。此数组包含正数和负数。
array db 07, 00, -3, 10, -7, 14, 9, -5, -100
lea ax, data
mov ds, ax
mov es, ax
lea si, array
mov cx, [si]
mov si, 0002h
xor ax, ax
xor dx, dx
Addition:
mov bl, [si]
cmp bl, 00h
jl NEGATIVE
xor bh, bh ;
jmp NEXTT
NEGATIVE:
mov bh, 0ffh
NEXTT:
add ax, bx
adc dx, 0
add si, 1
loop Addition
DX:AX
) = 0003 FFAE H,这是错误的。我认为正确的答案是
最佳答案
看来您没有适本地处理整数溢出。进位标志用于 无符号 加法和减法,但您想要 有符号 加法。溢出标志用于有符号加法,它总是在符号改变时设置。
编辑: 以前未经测试的代码无法正常工作。这是更正的(和自包含的)代码。使用 MASM 6.11 进行测试。
.model 小
.stack 4096
。数据
数组大小 dw 7
数组 db -3, 10, -7, 14, 9, -5, -100
数字数据库'0123456789abcdef'
。代码
开始:
mov ax,seg array_size ;利斧, 数据
mov ds,ax
移动,斧头
mov cx,[array_size] ; cx = 以字节为单位的数组大小。
lea si,array ; si 指向数组。
;数字在 dx:bx 中计算。
异或 dx,dx
异或 bx,bx
添加_循环:
mov al,[si] ;数字在 al 中读取。
cbw ; cbw 符号将 al 扩展到 ax。
测试斧头,斧头;检查加数的符号。
js 否定
积极的: ;加数是正的。
添加 bx,ax ;添加。
adc dx,0 ;携带。
jmp next_number
消极的: ;加数为负。
负斧;斧头 = |斧头|。
子 bx,ax ;减去。
sbb dx,0 ;借。
next_number:
公司 ;下一个号码。
循环添加_loop
;现在的结果是 dx:bx。
移动 ax,bx ;现在的结果是 dx:ax。
;其余代码仅用于打印。
推 bx ;推低字。
mov bx,dx ;将上面的单词复制到 bx。
调用 print_word_in_hexadecimal
推 dx ;推上词。
移动啊,2
mov dl,':'
整数 21 小时;打印 ':'
流行音乐dx;流行上位词。
流行音乐 bx ;流行较低的词。
调用 print_word_in_hexadecimal
移动啊,4ch
21 小时
;输入: bx:要打印的单词。
;输出: -
print_word_in_十六进制:
推bx
推cx
推dx
mov cl,4 ;算作角色。
mov ch,4 ;每个单词 4 个半字节。
next_nibble:
罗尔 bx,cl ;向左旋转 4 位。
推 bx ;推旋转词。
和 bx,0fh
mov dl,[bx+numbers]
移动啊,2;打印字符。
21 小时
流行音乐 bx ;流行旋转词。
十二月
jnz next_nibble
流行音乐
流行音乐
流行音乐
回复
结束开始
上面的代码对 8 位值进行有符号整数加法(8 位值扩展为 16 位值)。寄存器用法已更改为允许使用 cbw
以获得更清晰的代码。为简单起见,添加负数已转换为减法。数组的硬编码偏移量( mov si, 0002h
,仅当数组位于偏移量 2 时才有效)已替换为 lea si,array
:
size_of_array dw 7
数组 db -3, 10, -7, 14, 9, -5, -100
以及相应的代码变化:
lea si, size_of_array ;或者您可以将这两行替换为:
mov cx, [si] ; 1. mov cx,size_of_array(TASM/MASM 语法)。
lea si, 数组
以及如何检查数字是负数还是正数?好吧,你检查最高位。例如,在我的代码中( test
执行逻辑 AND 但不保存结果,它只更新标志):
测试斧头,斧头;对 ax,ax 进行逻辑与运算,但不保存结果。
js 否定 ;如果数字为负,则跳转。
积极的:
;这个数字是正数。
jmp my_label
消极的:
;数字是负数。
我的标签:
关于assembly - 在程序集中添加有符号数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302276/
我想做一个系统,用户可以上传和下载文件。系统将具有一个集中的地形,但在很大程度上依赖于节点将相关数据通过中心节点传输给其他节点我不希望对等端保存整个文件,而是希望它们保存整个数据集的一个压缩的加密部分
我正在 Riverpod Auth 流程样板应用程序中工作。 我想对所有异步功能甚至登录和注销使用通用加载屏幕。目前,如果 Appstate 加载我显示加载屏幕,我有 AppState 提供程序。它可
我有一个 functions.php 文件,其中包括以下功能: function head() { global $brand, $brandName, $logo, $slogan, $si
我有下一个 html 代码 ... 我想选择随机的 div 数组来向它们添加一个事件类,因为我使用这个 jquery 代码 function randOrder() { return
多年来,我创建并调整了一组NAnt脚本以执行完整的项目构建。主脚本采用一个应用程序端点(例如,一个Web应用程序项目),并从源代码控制中对其进行完整的构建。脚本已预先配置了与构建输出位置,源代码控制地
我希望我的 jQuery 插件在 $(window) 选择上调用时表现不同。如何检查 window 是否在集合中?到目前为止我的尝试: >>> $(window) == $(window) false
考虑到我们有 let existingSet = $(); 如何通过 jQuery 将 newElements 添加到该集合中? existingSet = existingSet.add(newEl
我需要在 priority_queue 中保存一个整数集合。但是我需要能够删除这些整数中的一个,即使它不是我容器的第一个元素。我无法使用 std::priority_queue。我选择使用一个集合来根
对于我的网站,我一直在尝试集中所有内容以便在移动设备上显示: http://m.bachatdeals.com 我在移动设备上打开网站后,内容下方有很多空间,我必须捏住 zoon 才能阅读,如何删除下
我计划为我的剑道验证器制定一些自定义规则,并希望在所有验证器之间共享。在我的验证器代码中,我有: rules: { bothorblank: function (input) {
这是我的函数,用于测试两个点 x 和 y 在 MAX_ITERATION 255 之后是否在 mandelbrot 集合中。如果不在,它应该返回 0,如果在,则返回 1。 int isMandelbr
致力于从移动设备扩展到桌面设备的简单网站布局。一切都按预期工作,但由于某种原因,我的 float div 没有集中放置。我已经完成了正常工作,但这次不适合我?有什么想法吗? 这是我的 CSS: /*
我的“div”元素有一个相对宽度,它不是绝对的,所以我不能使用精确的数字来集中。一个不错的解决方案是使用“display: inline-block”: body { text-align:
目前我拥有的所有类都处理它们自己的导入。使用一个典型的例子: [ImportMany] private Lazy[] someOfMyInterfaces { get; set; } public M
我有一个类定义: class Question: title = "" answer = "" def __init__(self, title, answer):
我正在尝试将一个对象 Point2D 插入到一个 Point2D 集合中,但我做不到,似乎该集合适用于 int 和 char 但不适用于对象。 我需要帮助来了解如何将对象插入到集合中???假设我想按
我的应用上有一些弹出窗口,它是全屏的,代码如下: content.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
我们有一个多模块 Quarkus 项目,带有一个公共(public)库和多个应用程序。在通用的 lib 中,我们有各种缓存用于所有应用。 我们希望不必在每个应用程序的所有配置文件中配置保留和容量。 有
这个问题在这里已经有了答案: Nested facets in ggplot2 spanning groups (2 个回答) 去年关闭。 我在 ggplot 中创建了一个图表里面有两个变量 face
我无法集中v-radio-group。这是我得到的:
我是一名优秀的程序员,十分优秀!