- [游客] 一楼正解。 果然是SP的问题。加一条 mov ax,19 ;随便设个idata,保证不会越 02/21 16:41
- [tinyparticle] 举个例子:下面是DIVDW子程序 ;名称:divdw ;功能:进行不会产生溢出的除法运算, 09/27 00:17
- [inuyashall] 专家说的,借来用用,呵呵 ==================================== 09/26 23:52
- [游客] 难得!!! 09/26 16:10
- [tinyparticle] 神啊,该怎么做,才能让子程序跟主程序基本脱离关系? 这个程序该如何优化? ========== 09/26 02:03
- [inuyashall] 论坛逛了一会,扫视了一下课设1,发现大家的代码都好长啊,子程序也有好多个,貌似都很复杂的样子。 为 09/26 01:44
- [游客] 又是int 3!刚百度了一下,说是设置断点什么的,没怎么看明白,我明明没有设置断点啊。 ==== 08/07 18:45
- [游客] debug下跟踪的话,涉及到T等命令产生的中断,产生中断的时候,会引发基于硬件的中断过程,这个过程会 08/07 18:44
- [inuyashall] 很感谢这位朋友指出的问题以及解答,希望能和你交个朋友。呵呵,为何不登陆呢? 08/06 17:41
- [inuyashall] 啊,我又粗心了。0~1fh共20h个数,所以cx应赋值20h才对。 08/06 15:35
[2009-09-25 13:46] 迟到了一个月的课设1
;课设1。成功。
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995','0000','0000','0000'
dd 16,22,382,1356,2390,8000,16000,24486
dd 50065,97479,140417,197514,345980...
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995','0000','0000','0000'
dd 16,22,382,1356,2390,8000,16000,24486
dd 50065,97479,140417,197514,345980...
阅读全文 |
评论次数(4) |
浏览次数(679) |
所属类型(汇编作业)
[2009-09-24 00:13] 小小的总结,小小的期望
感觉苍老了很多,要做的事还有很多很多,真的应了那句老话,time has wings。
王爽老师的书已经有一个多月没好好看了,暑假晚上失眠时连续看了一个多星期,看到第10章了吧,看标志寄存器时觉得太枯燥,就看不下去了,就半途而废了,课设1搞到一半也停了,果然,哎。
这学期的唯一一门专业必修课是《微机原理与接口技术》,需要汇编的相关知识,教材很厚很枯燥,一上来就balabala一堆8086CPU的40个管脚十几个寄存器,然后就开始罗列汇编语言的几十条指令。亲爱的作者同志,您这是写教科书呢还是编词典呐,您这是写给学生看的教材呢还是个人学习总结呢,您是写书育人呢还是纯粹想赚...
王爽老师的书已经有一个多月没好好看了,暑假晚上失眠时连续看了一个多星期,看到第10章了吧,看标志寄存器时觉得太枯燥,就看不下去了,就半途而废了,课设1搞到一半也停了,果然,哎。
这学期的唯一一门专业必修课是《微机原理与接口技术》,需要汇编的相关知识,教材很厚很枯燥,一上来就balabala一堆8086CPU的40个管脚十几个寄存器,然后就开始罗列汇编语言的几十条指令。亲爱的作者同志,您这是写教科书呢还是编词典呐,您这是写给学生看的教材呢还是个人学习总结呢,您是写书育人呢还是纯粹想赚...
阅读全文 |
评论次数(1) |
浏览次数(631) |
所属类型(问题交流)
[2009-08-06 17:32] HELP!“当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。”
论坛提问: http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=book&kind=1004&qkSg=2&qID=39568&readSg=1
做第3章检测题时,有一题的选项是“当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。”我不太理解,所以在论坛发了帖寻求帮助,有好心的网友回复了这个问题,我想检验一下,所以编了个小程序。程序如下:
assume cs:code
code segment
mov ax,0020h
mov ss,ax
mov sp,0004h ;栈顶设置为0020:0004,栈大小为4...
做第3章检测题时,有一题的选项是“当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。”我不太理解,所以在论坛发了帖寻求帮助,有好心的网友回复了这个问题,我想检验一下,所以编了个小程序。程序如下:
assume cs:code
code segment
mov ax,0020h
mov ss,ax
mov sp,0004h ;栈顶设置为0020:0004,栈大小为4...
阅读全文 |
评论次数(3) |
浏览次数(1354) |
所属类型(问题交流)
[2009-08-05 17:33] 实验9
assume cs:code
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,0b800h
mov ds,ax
mov bx,0e9eh ;ds:[bx]指向b800:0e9e,使输出字符串位于屏幕中央
mov ax,data
mov es,ax
mov si,0 ;es指向data段的第一个单元
mov cx,0010h...
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,0b800h
mov ds,ax
mov bx,0e9eh ;ds:[bx]指向b800:0e9e,使输出字符串位于屏幕中央
mov ax,data
mov es,ax
mov si,0 ;es指向data段的第一个单元
mov cx,0010h...
阅读全文 |
评论次数(1) |
浏览次数(428) |
所属类型(汇编作业)
[2009-08-05 17:28] 实验8
程序运行前的分析:程序可以返回。
从start处开始执行,执行s后,s2处的第一条指令jmp short s1被复制到s处。接着向下执行s0处的指令jmp short s,程序跳转到s处,执行jmp short s1,然后跳到s1处,执行mov ax,0 int 21h,程序中断。(啥是“中断”啥是“返回”?)
程序执行后,发现程序可以返回,但跟我想的有出入。关键在于对“jmp 标号 ”指令的实质的理解——这条指令中保存的是转移的位移,而非目标地址。
复制指令jmp short s1时,被复制的是转移的位移,即【s1处地址—s2处地址】,复制后,s出的第一条指令为jmp shor...
从start处开始执行,执行s后,s2处的第一条指令jmp short s1被复制到s处。接着向下执行s0处的指令jmp short s,程序跳转到s处,执行jmp short s1,然后跳到s1处,执行mov ax,0 int 21h,程序中断。(啥是“中断”啥是“返回”?)
程序执行后,发现程序可以返回,但跟我想的有出入。关键在于对“jmp 标号 ”指令的实质的理解——这条指令中保存的是转移的位移,而非目标地址。
复制指令jmp short s1时,被复制的是转移的位移,即【s1处地址—s2处地址】,复制后,s出的第一条指令为jmp shor...
阅读全文 |
评论次数(1) |
浏览次数(454) |
所属类型(汇编作业)
[2009-08-05 17:06] 实验7
实验7 寻址方式在结构化数据访问中的应用
(1)编程,将data段中的数据按格式保存到table段中。
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995','0000','0000','0000' ;此段数据
;所占空间不为16的整数倍,为了方便后面对内存...
(1)编程,将data段中的数据按格式保存到table段中。
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995','0000','0000','0000' ;此段数据
;所占空间不为16的整数倍,为了方便后面对内存...
阅读全文 |
评论次数(1) |
浏览次数(491) |
所属类型(汇编作业)
[2009-08-05 17:03] 实验6
实验6 实践课程中的程序
(2)编程,将datasg段中每个单词的前4个字母改为大写字母。
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display......'
db '2. brows........'
db '3. replace......'
db '4, modify.......' ;空格符不易查看,故用’.’占位,
...
(2)编程,将datasg段中每个单词的前4个字母改为大写字母。
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display......'
db '2. brows........'
db '3. replace......'
db '4, modify.......' ;空格符不易查看,故用’.’占位,
...
阅读全文 |
评论次数(1) |
浏览次数(496) |
所属类型(汇编作业)
[2009-08-05 15:58] 实验3
实验3 编程、编译、连接、跟踪
(1)将程序保存为.asm文件,编译、连接成为.exe文件
(2)跟踪此程序
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1935 ES=1935 SS=1945 CS=1945 IP=0000 NV UP EI PL NZ NA PO NC
1945:0000 B80020 MOV AX,2000
-u
1945:0000 B80020 MOV AX,2000
194...
(1)将程序保存为.asm文件,编译、连接成为.exe文件
(2)跟踪此程序
-r
AX=0000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1935 ES=1935 SS=1945 CS=1945 IP=0000 NV UP EI PL NZ NA PO NC
1945:0000 B80020 MOV AX,2000
-u
1945:0000 B80020 MOV AX,2000
194...
阅读全文 |
评论次数(1) |
浏览次数(506) |
所属类型(汇编作业)
[2009-08-05 15:34] 实验4
实验4 [BX]和loop的使用
(1)编程,向内存0:200~0:23F依次传送数据0~63(3FH)
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0000h ;将ds:sp指向0020:0000
mov cx,0040h ;0~63,共64个数,即循环40h次
s: mov [bx],bx
inc bx
loop s ; 向内存0:200~0:23F依次传送数据0~63
mov ax,4c00h
int ...
(1)编程,向内存0:200~0:23F依次传送数据0~63(3FH)
assume cs:code
code segment
mov ax,0020h
mov ds,ax
mov bx,0000h ;将ds:sp指向0020:0000
mov cx,0040h ;0~63,共64个数,即循环40h次
s: mov [bx],bx
inc bx
loop s ; 向内存0:200~0:23F依次传送数据0~63
mov ax,4c00h
int ...
阅读全文 |
评论次数(9) |
浏览次数(685) |
所属类型(汇编作业)
[2009-08-01 22:32] 检测点6.1 实验5
之前半个月没上网,所以做的题只写在了纸上,没有整理成电子档,现在看书看到第7章,下午把5、6章的作业整理了一下,做了排版(颜色大小写之类的),哎,没想到博客上并不支持这些功能(为什么不能上传电子档T.T),伤心。现在的文章看起来好像有点乱,还请多多包涵。
+++++++++++++++++++++++++++++++++++++++++++++
作业【第6章 包含多个段的程序】
检测点 6.1
(1)用内存0:00~0:15中的内容改写程序中的数据
assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0...
+++++++++++++++++++++++++++++++++++++++++++++
作业【第6章 包含多个段的程序】
检测点 6.1
(1)用内存0:00~0:15中的内容改写程序中的数据
assume cs:code
code segment
dw 0123h,0456h,0789h,0abch,0...
阅读全文 |
评论次数(2) |
浏览次数(585) |
所属类型(汇编作业)