sp和bp之间是由区别的,以下是转手的资料:
指针寄存器包括堆栈寄存器SP(stack pointer)和基数指针寄存器BP(base pointer),变值寄存器包括源变址寄存器SI(source index)和目的变值寄存器DI(destination index)。这4个寄存器都是16位寄存器,这些寄存器在运算过程中也可以用来存放操作数(只能以字为单位),但经常的用途是在段内寻址时提供偏移地址,SP,BP一般与段寄存器SS
联用,以确定堆栈寄存器中某一单元的地址,SP用以指示栈顶的偏移地址,而BP可作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。SI,DI一般与段寄存器 ...
- [tomato] 有道理。 05/19 18:12
- [tomato] Right! 05/19 18:10
- [tomato] Yes! 05/19 18:09
- [tomato] 第二题的答案不太对。 05/19 18:04
- [tomato] No problem! 05/19 18:02
- [tomato] 正确。 05/19 12:49
- [mess] 理论上记忆的东西还是挺麻烦的,实际中使用多了也就掌握了~ 05/18 14:18
- [游客] 恩,看不懂 05/16 10:02
- [yannzi] 恩……改正过来了 05/14 13:29
- [yannzi] 呵呵……谢谢pmsheep82的评论 05/14 13:29
- [游客] 支持!!!! 05/16 10:07
[2009-05-14 13:27] sp和bp之间的区别
阅读全文 |
评论次数(1) |
浏览次数(559) |
所属类型(汇编作业)
[2009-05-14 12:57] 第10章 实验10 3数值显示
经过一番奋斗,终于把第三个子程序写出来了,可以继续做我的课程设计1了,甚是兴奋矣。、
数值显示这道题目出得真是妙,答案很快做出来了,不过一开始显示的是逆置的字符串。那么要考虑的问题就是怎么使得所有的数值显示正常,根据课本给出的转换字符的算法,则在将字符存入data段的时候是需要将字符逆置写入,这个细节方面的东西方法很多,不过感觉自己写的方法还不错,欢迎各位批评!
下面是我的源程序:
assume cs:code
data segment
db 10 dup(0)
data ends
stack segment
db 16 dup(0) ;自定义栈段
s...
数值显示这道题目出得真是妙,答案很快做出来了,不过一开始显示的是逆置的字符串。那么要考虑的问题就是怎么使得所有的数值显示正常,根据课本给出的转换字符的算法,则在将字符存入data段的时候是需要将字符逆置写入,这个细节方面的东西方法很多,不过感觉自己写的方法还不错,欢迎各位批评!
下面是我的源程序:
assume cs:code
data segment
db 10 dup(0)
data ends
stack segment
db 16 dup(0) ;自定义栈段
s...
阅读全文 |
评论次数(1) |
浏览次数(522) |
所属类型(汇编作业)
[2009-05-13 21:55] 实验10 编写子程序2 解决除法溢出的问题
2.解决除法溢出的问题
名称:divdw
功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为
dword型。
参数:(ax)=dword型数据的低16位
(dx)=dword型数据的高16位
(cx)=除数
返回:(dx)=结果的高16位,(ax)=结果的低16位
(cx)=余数
assume cs:code
stack segment
db 16 dup(0) ;自定义栈段
stack ends
code segment
start:
mov ...
名称:divdw
功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为
dword型。
参数:(ax)=dword型数据的低16位
(dx)=dword型数据的高16位
(cx)=除数
返回:(dx)=结果的高16位,(ax)=结果的低16位
(cx)=余数
assume cs:code
stack segment
db 16 dup(0) ;自定义栈段
stack ends
code segment
start:
mov ...
阅读全文 |
评论次数(1) |
浏览次数(586) |
所属类型(汇编作业)
[2009-05-12 21:48] 第十章 编写子程序 1
;名称:show_str
;说明:在指定的位置,用指定的颜色,显示一个用0结束的字符串
;参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si指向字符串的首地址
;返回值:无
data SEGMENT
db 'Welcome to masm!',0
data ENDS
CODES SEGMENT
ASSUME CS:CODES
START:
mov dh, 8
mov dl, 3
mov cl, 2
mov ax,data
mo...
;说明:在指定的位置,用指定的颜色,显示一个用0结束的字符串
;参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),(cl)=颜色,ds:si指向字符串的首地址
;返回值:无
data SEGMENT
db 'Welcome to masm!',0
data ENDS
CODES SEGMENT
ASSUME CS:CODES
START:
mov dh, 8
mov dl, 3
mov cl, 2
mov ax,data
mo...
阅读全文 |
评论次数(4) |
浏览次数(632) |
所属类型(汇编作业)
[2009-05-08 22:41] 第四章实验
第(1)和(2)两题就不写了,下面写一下第(3)题的结果:
(3)PSP的头两个字节是CD 20,用Debug加载程序,查看psp的内容如下所示:
C:\>debug shiyan3.exe
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=150C ES=150C SS=151C CS=151C IP=0000 NV UP EI PL NZ NA PO NC
151C:0000 B80020 MOV AX,2000
-
-d 150C:...
(3)PSP的头两个字节是CD 20,用Debug加载程序,查看psp的内容如下所示:
C:\>debug shiyan3.exe
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=150C ES=150C SS=151C CS=151C IP=0000 NV UP EI PL NZ NA PO NC
151C:0000 B80020 MOV AX,2000
-
-d 150C:...
阅读全文 |
评论次数(1) |
浏览次数(596) |
所属类型(汇编作业)
[2009-05-08 21:42] 第六章 作业整理
实验五
第一题
CS=151Ch,SS=151Ah,DS=151Bh
data段的段地址为x-2,stack段的段地址为x-1
第二题
CS=151Ch,SS=151Ah,DS=151Bh
data段的段地址为x-2,stack段的段地址为x-1
实际占有空间是 比n大的最小的16的倍数
第三题
CS=151Ah,SS=151Dh,DS=151Eh
data段的段地址为x+3,stack段的段地址为x+4
第四题
只有第三个可以正确执行,用DEBUG可以查看到内存单元寄存器的状态,此时只有第三个的cs:ip给出了正确的...
第一题
CS=151Ch,SS=151Ah,DS=151Bh
data段的段地址为x-2,stack段的段地址为x-1
第二题
CS=151Ch,SS=151Ah,DS=151Bh
data段的段地址为x-2,stack段的段地址为x-1
实际占有空间是 比n大的最小的16的倍数
第三题
CS=151Ah,SS=151Dh,DS=151Eh
data段的段地址为x+3,stack段的段地址为x+4
第四题
只有第三个可以正确执行,用DEBUG可以查看到内存单元寄存器的状态,此时只有第三个的cs:ip给出了正确的...
阅读全文 |
评论次数(1) |
浏览次数(606) |
所属类型(汇编作业)
[2009-05-08 10:18] 实验9 根据材料编程
一、实验目的
熟悉80 x 25彩色字符模式显示缓冲区的特点,进一步熟练掌握汇编语法的知识应用。
二、实验内容
题目描述:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串“welcome to masm!”。
三、实验步骤
1. 首先根据显示缓冲区的大小计算出要显示的字符串的内存地址:由于显示缓冲区为80字符×25行区域,并且其在内存地址B8000H~BFFFFH的空间里面。要在显示缓冲区的第一页的中间分别显示绿色、绿底红色、白底蓝色的字符串“welcome to masm!”这三行字符串,可计算出显示字符的起始地址为第一页的第12行,内存地址为:0b86e:40。...
熟悉80 x 25彩色字符模式显示缓冲区的特点,进一步熟练掌握汇编语法的知识应用。
二、实验内容
题目描述:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串“welcome to masm!”。
三、实验步骤
1. 首先根据显示缓冲区的大小计算出要显示的字符串的内存地址:由于显示缓冲区为80字符×25行区域,并且其在内存地址B8000H~BFFFFH的空间里面。要在显示缓冲区的第一页的中间分别显示绿色、绿底红色、白底蓝色的字符串“welcome to masm!”这三行字符串,可计算出显示字符的起始地址为第一页的第12行,内存地址为:0b86e:40。...
阅读全文 |
评论次数(1) |
浏览次数(479) |
所属类型(汇编作业)
[2009-05-07 17:33] 第二章实验
PC机主板中的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。
我输入的是:-d FFFF:0000 f
得到的结果是:
.[...07/10/07..v...
我输入的是:-d FFFF:0000 f
得到的结果是:
.[...07/10/07..v...
阅读全文 |
评论次数(1) |
浏览次数(488) |
所属类型(汇编作业)
[2009-05-07 17:07] 第4章汇编测试题目
关于伪指令相关描述错误的是__2___。
1、 伪指令没有对应的机器码,只用来指导汇编过程的。
2、 伪指令由编译器处理,在程序中可有可无。
3、 编译器要通过执行伪指令才能对源程序进行相应的处理操作,完成编译工作。
4、 伪指令是汇编语言源程序不可缺少的组成部分。
下列程序中,出现逻辑错误的是:__2__
1、 assume cs:code
code segment
mov ax,2
add ax,ax
mov ax,4c00h
int 21h
code
...
1、 伪指令没有对应的机器码,只用来指导汇编过程的。
2、 伪指令由编译器处理,在程序中可有可无。
3、 编译器要通过执行伪指令才能对源程序进行相应的处理操作,完成编译工作。
4、 伪指令是汇编语言源程序不可缺少的组成部分。
下列程序中,出现逻辑错误的是:__2__
1、 assume cs:code
code segment
mov ax,2
add ax,ax
mov ax,4c00h
int 21h
code
...
阅读全文 |
评论次数(1) |
浏览次数(606) |
所属类型(汇编作业)
[2009-05-07 09:52] 第3章汇编测试解析
共5道单选题目
能够只将al中的内容压入栈的指令序列是_____。
1、 push al
2、 pop ax
3、 mov ah,0
push ax
4、 mov ax,0
push ax
注解:1、PUSH和POP的操作对象是字,AL是字节,操作对象不一致
2、POP AX是出栈命令
3、其实我并不懂为什么要先把AH赋0,只是觉得这个比较适合,
4、AX值被改变
下列指令的书写正确的是:____
1、 push al
2、 mov cs:[0],d...
能够只将al中的内容压入栈的指令序列是_____。
1、 push al
2、 pop ax
3、 mov ah,0
push ax
4、 mov ax,0
push ax
注解:1、PUSH和POP的操作对象是字,AL是字节,操作对象不一致
2、POP AX是出栈命令
3、其实我并不懂为什么要先把AH赋0,只是觉得这个比较适合,
4、AX值被改变
下列指令的书写正确的是:____
1、 push al
2、 mov cs:[0],d...
阅读全文 |
评论次数(1) |
浏览次数(577) |
所属类型(汇编作业)
『 查看更多文章 』