曲曲的秘密学术基地

纯化欲望、坚持严肃性

欢迎!我是曲泽慧(@zququ),目前在深圳(ICBI,BCBDI,SIAT)任职助理研究员。


病毒学、免疫学及结构生物学背景,可以在 RG 上找到我已发表的论文

本站自2019年7月已访问web counter

汇编语言 5.1 [bx]

[bx]和内存单元

我们在debug中,可以输入以下命令来执行对于段地址偏移地址的操作:

mov ax, [0]     ;字传输
mov al, [0]     ;字节传输

但是当我们将这个命令在编译环境下执行,则会出现问题,例如我们写一个汇编脚本:

assume cs:codesg

codesg segment

start: mov ax, 2000H
       mov ds, ax
       mov al, [0]
       mov bl, [1]
       mov cl, [2]
       mov dl, [3]

       mov ax, 4C00H
       int 21H

codesg ends

end start

然后我们在debug中进行调试, 如图所示:

figure

我们发现随着mov bx, [n]的执行,通用寄存器BX的值发生改变。

这是因为在编译环境下,无法识别debug中我们用到的内存单元表示” [] “。

5.1 [BX]

在编译环境下我们有替代的方法:

mov ax, [bx]

功能为在bx中存放的数据作为一个偏移地址EA, 段地址SA默认在DS中,将SA:EA处的数据送入AX中。即:

$(AX)=((DS)*16+(BX))$

另一个用法为:

mov [bx], ax

功能为在bx中存放的数据作为一个偏移地址EA, 段地址SA默认在DS中,将AX中的数据送入内存SA:EA处。即:

$((DS)*16+(BX))=(AX)$

注:inc命令, 含义为在BX中的内容加1,如:

mov bx, 1
inc bx

执行后,BX = 2。

Last One

Markdown 语言高亮关键字(转载)

转载自CSDN, 原作者yxys01. 语言名 关键字 Bash bash CoffeeScript coffeescript C++ cpp C# cs CSS css Diff diff HTTP ...…

blogMore
Next One

Cross Correlation

% A demonstration of cross correlation in action.% Hit the space bar during the demo to execute% % https://dadorran.wordpress.com/2014/04/25/cross-correlation-demo/clc;close alla = [0.1 0.2 -0.1 4.1 -2 1.5 0 ];b = [0.1 4 -2.2 1.6 0.1 0.1 0.2]; le...…

数学More