第五章.md

第五章

[bx]

mov ax, [0]		;[0]为常量			对nasm来说
mov	ax, ds:[0]
mov bx,	0
mov ax, [bx]	;将ds:bx处的内容赋值给ax

loop

通常使用loop进行循环,cx作为循环次数

计算2^12

assume cs:code
code segment
	start:
        mov ax, 2
        mov cx, 11
        s: add ax, ax
        loop s

        mov ax, 4c00H
        int 21H
code ends
end start

1566788344566

1566788558452


  1. mov ax, 0ffffh 在源程序中,数字不应已字母开头,所以多+0
  2. 汇编赋值时,注意位数的不同可能会影响赋值结果 mov al, [bx] mov ah, 00

[bx]与loop的联合使用

将 ffff0~ffffb中的8位数据累加到dx

  1. dx = dx + 8位数据
  2. dl = dl + 8位数据

1566789975383

解决:

1566790193740

mov dx, 0000H	;dx 作为最终结果
mov bx, 0000H	;bx 作为偏移变量
mov cx, 000bH	;cx loop变量
s: mov al, ds:[bx]
mov ah, 00H
add dx, ax
inc bx
loop s

一段安全的空间

1566791171367


多个段地址使用

1566791450857

原文地址:https://www.cnblogs.com/nsfoxer/p/14353805.html