SI和DI】的更多相关文章

bx.si.di 和 bp 在 8086CPU 中,只有这 4 个寄存器可以用在 "[...]" 中来进行内存单元的寻址. mov ax, [bx] mov ax, [bx+si] mov ax, [bx+di] mov ax, [bp] mov ax, [bp+si] mov ax, [bp+di] 而下面的指令是错误的 mov ax, [cx] mov ax, [ax] mov ax, [dx] mov ax, [ds] 这四个寄存器可以单个出现,或者以 4 种组合出现:bx 和…
1- SI和DI是8086CPU中和bx功能相近的寄存器, SI和DI不能够分成两个8位寄存器来使用, 下面的三组指令实现了相同的功能: (1)  mov bx,0 mov ax,[bx] (2) mov si,0 mov ax,[si] (3) mov di,0 mov ax,[di] 或者 (1)  mov bx,0 mov ax,[bx + 123] (2) mov si,0 mov ax,[si + 123] (3) mov di,0 mov ax,[di + 123] 方法一: ;用寄…
疯狂暑期学习  汇编入门学习笔记 (六)-- si.di,双重循环 參考: <汇编语言> 王爽 第7章 1. and和or指令,与[bx+idata] and和or.就不多说了. [bx+idata] 这样写是能够的,某些情况下,比較方便. [bx+idata] 也能够写成 idata[bx] 直接见样例: 把'ABcde' 跟 'fGHig' 都改成大写(ASCII中大写字母与小写字母二进制中.仅仅有第五位不同,大写字母是0,小写字母是1) assume cs:code,ds:data da…
si和di是8086CPU中和bx功能相近的寄存器,si和di不能够分成两个8位寄存器来使用. 用si和di实现将字符串"welcome to masm!"复制到它后面的数据区中. assume cs:codesg,ds:datasg datasg segment db 'welcome to masm!' db '..........................' datasg ends codesg segment start: mov ax, datasg mov ds,ax…
首先,都可以单独使用. 另外,组合使用的情况下: 记住这张图片就行了=_= 意思就是,bx只能和si,di组合.bp只能和si,di组合.…
这个很简单: sp:表示栈顶指针,指向栈顶地址.与SS相配合使用.ss为栈段. bp:是基址指针,段地址默认在SS中.可以定位物理地址,比如:"mov ax,[bp+si+6]/mov ax,[bp+di+6]. DI:是目的变址寄存器.一般情况下与ds联用,来确定某个储存单元的地址. SI:是源变址寄存器,默认段地址和DI一样,在DS中.和DS联用. 这四个寄存器,都是16位的,不可以分割为八位. 要注意,1,sp和bp段地址默认在SS中.2..sp指向栈顶元素地址.有自加和自减能力,而bp没…
一.汇编语言中,为什么SI和DI不能同时使用汇编 其实你可以想一下,这两个寄存器的意思,SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就得出了需要基址寄存器. 你要是把这两个寄存器同时使用,那你地址变化的基址都没有,你该怎么变化呢?你在谁的基础上变化(也就是地址偏移)? 对于这些汇编中的规定,其实有时并不需要书上详细的介绍,我们都应该可以从中推导出这些规则,书上的那些介绍个人认为只是用来验证我们的推测的.或是对我们所掌握的知识的进行…
DS is called data segment register. It points to the segment of the data used by the running program. You can point this to anywhere you want as long as it contains the desired data. ES is called extra segment register. It is usually used with DI and…
1.简介 本文主要介绍三个文件bootsect.s.setup.s.head.s,主要是做了些从软盘加载内核和设置32位保护模式的操作. 2.程序分析 当PC电源打开后,BIOS自检后将bootsect读入内存绝对地址0x7c00处,因为bootsect.s的结尾是: .word 0xAA55 然后跳转到0x7c00处并把执行权交给此处的代码,从start:处开始执行. BOOTSEG = 0x07c0 INITSEG = 0x9000 start: mov ax,#BOOTSEG mov ds…
硬盘不同于软盘,它是要分区的.这时,mbr(master boot record)便不可少了.安装 os 硬盘的第一扇区,开始有一小段不多于 446 字节的程序,然后是分区表 512-446-2 字节,然后是引导标志 0xAA55 两字节.这一小段程序,便是 mbr 的主体.mbr 首先将其自身复制到 0x0600 处,代码如下: ; 0x7C00 => 0x0600 mov si, sp push si mov di, 0x0600 mov cx, 0x200 cld rep movsw 这是…