小编Ami*_*nis的帖子

如何在MOV和LEA指令后确定AX中的结果

我想在下面的问题中了解AX寄存器的内容,我不明白我怎么知道示例中的[5000h]或[DI]是什么.

寄存器和存储器的状态定义为:

CS=3000 [53000]=BBBB [33000]=6666 [13000]=1111
DS=1000 [54000]=CCCC [34000]=7777 [14000]=2222
SS=5000 [55000]=DDDD [35000]=8888 [15000]=3333
DI=7000 [56000]=EEEE [36000]=9999 [16000]=4444
BP=4000 [57000]=FFFF [37000]=AAAA [17000]=5555
Run Code Online (Sandbox Code Playgroud)

AX中的每个指令的值是多少

  • MOV AX, [DI]
  • MOV AX, [5000h]
  • MOV AX, [BP+2000h]
  • LEA AX, [BP+1000h]

x86 assembly real-mode x86-16

4
推荐指数
1
解决办法
135
查看次数

在此代码中添加BX,2的目的是什么?

我试图理解此递归代码,但对的目的感到困惑add bx, 2。我已经在相关行上打上了标记。据我了解,我们必须用值增加指向数组的指针,但是为什么我们要加2而不是1?

    .model small
    .stack 100
    .data
     arr dw 38, 39, 90, 94, 13, 24, 53, 59, 63
     size dw 9
     result dw ?
    .code
    func proc
     push bp
     mov bp, sp
     push ax
     push bx
     push cx
     push dx
     mov cx, [bp+4]
     mov bx, [bp+6]
     mov ax, [bx]
     cmp cx, 1
     ja more
     mov [bp+6], ax
     jmp done
    more:

     **add bx, 2**

     push bx
     dec cx
     push cx
     call func
     pop dx
     cmp dx, ax
     jg …
Run Code Online (Sandbox Code Playgroud)

arrays recursion assembly x86-16

1
推荐指数
1
解决办法
111
查看次数

获取向量C++中第一个和最后一个值的总和

我想得到向量中第一个最后一个元素的总和

这是我尝试过的,由于某种原因,我一直得到的值是零.我该怎么改变

int sum_first_last(vector <int> &v) {
for (int k = 0; k < v.size(); ++k) {
        if (k == 0) {
            int first_element;
            first_element = v[k];

            if (k == v.size()) {
                int last_element;
                last_element = v[k];
                return first_element + last_element;
            }
 }

int main() {

    vector<int> v1;
    int n;
    int k = 0;
    cout << "please enter number of elements you wish to add" << endl;
    cin >> n;
    for (int i = 0; i < n; i++) { …
Run Code Online (Sandbox Code Playgroud)

c++ sum vector

-2
推荐指数
1
解决办法
183
查看次数

标签 统计

assembly ×2

x86-16 ×2

arrays ×1

c++ ×1

real-mode ×1

recursion ×1

sum ×1

vector ×1

x86 ×1