


- [lcgkm] 这个错误很多 改了很久 现在贴上: assume cs:code data segment 05/08 18:54
- [lcgkm] 这个子程序的问题最多,到最后0也要要写入字符串的结尾的 切记切记 05/08 18:51
- [lcgkm] 呵呵 这是没有出错的 很庆幸啊 在这也指明 我在课程设计1中犯的糊涂 因为show-str 05/08 18:48
- [lcgkm] 在此 提出我在课程设计1中的出现的错误: 我的ES在子程序开始时没有入栈,在课程设计1中出现了寄存 05/08 18:44
- [younggay] 博主论坛的帖子中的问题自己解决了?应该有收获吧。 该去结贴了。呵呵 顺便说上你自己错误的经验,以 05/08 17:24
- [bug] 恭喜 05/08 16:42
- [游客] 祝贺! 05/08 12:09
- [black] 在转化的时候,每次都是把余数放入[si],每次si加1, 如果是1234,那最后在内存中就是 34 05/07 18:38
- [lcgkm] 恩 我终于发现了我的错了 恩 检测结束条件: 商为0 我弄错了 特此把改正好的放上 as 05/07 18:09
- [lcgkm] 谢谢 我偷懒了 没有写注释 等我再改改 05/07 16:05
[2008-05-08 11:38] 我的课程设计1
终于完成了我的课程设计1 问题很多 前面完成的实验10的子程序都有问题 这些问题都一次性的在课程设计1中爆发了出来 还我走了很多弯路 在这先把我的课程设计放上 之后我在回头复习和修改我的实验10
恩 只想说 真的很有成就感啊!!!!
代码:
assume cs:code,es:data,ds:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1...
恩 只想说 真的很有成就感啊!!!!
代码:
assume cs:code,es:data,ds:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1...
阅读全文 |
评论次数(3) |
浏览次数(747) |
所属类型(我的实验)
[2008-05-07 18:11] 新编写的dtoc程序(将dword型数据转变为表示十进制数的字符串,字符串以0为结尾)
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start:mov ax,0ACEDh
mov dx,1
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
;show...
data segment
db 10 dup (0)
data ends
code segment
start:mov ax,0ACEDh
mov dx,1
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
;show...
阅读全文 |
评论次数(2) |
浏览次数(643) |
所属类型(我的实验)
[2008-05-07 12:32] 实验10 编写子程序 3.数值显示
assume cs:code
data segment
db 10 dup (0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
;show_str
;说明:在指定的位置,用...
data segment
db 10 dup (0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
;show_str
;说明:在指定的位置,用...
阅读全文 |
评论次数(4) |
浏览次数(796) |
所属类型(我的实验)
[2008-05-07 10:59] 实验10 编写子程序 2.解决除法溢出的问题
assume cs:code
code segment
start:mov ax,4240h
mov dx,000fh
mov cx,0ah
call divdw
mov ax,4c00h
int 21h
;divdw
;说明:进行不会产生溢出的除法算法,被除数为dword型,除数为word型,结果为dword型
;参数:ax=dword型数据的16位,dx=dword型数据的高16位 cx=除数
;返回:dx=结果的高16位 ax=结果的低16位 cx=余数
divdw:push bx
...
code segment
start:mov ax,4240h
mov dx,000fh
mov cx,0ah
call divdw
mov ax,4c00h
int 21h
;divdw
;说明:进行不会产生溢出的除法算法,被除数为dword型,除数为word型,结果为dword型
;参数:ax=dword型数据的16位,dx=dword型数据的高16位 cx=除数
;返回:dx=结果的高16位 ax=结果的低16位 cx=余数
divdw:push bx
...
阅读全文 |
评论次数(2) |
浏览次数(794) |
所属类型(我的实验)
[2008-05-06 21:49] 实验10 编写子程序 1.显示字符串
(1)找到屏幕上的行列位置和显存地址的对应关系
首先分析屏幕上的8行3列,因为行号(取值范围0~24)列号(取值范围0~79),都是从0开始计数
第0行 000~09f
第1行 0a0~13f
第2行 140~1df
第3行 1e0~27f
第4行 280~31f
第5行 320~3bf
第6行 3c0~45f
第7行 460~4ff
第8行 500~59f
第0列 00~01单元 第1列 02~03单元 第2列 04~05单元 第3列 06~07单元
8行3列为:b800:0506
代码:
assume cs:code
data segment
db ...
首先分析屏幕上的8行3列,因为行号(取值范围0~24)列号(取值范围0~79),都是从0开始计数
第0行 000~09f
第1行 0a0~13f
第2行 140~1df
第3行 1e0~27f
第4行 280~31f
第5行 320~3bf
第6行 3c0~45f
第7行 460~4ff
第8行 500~59f
第0列 00~01单元 第1列 02~03单元 第2列 04~05单元 第3列 06~07单元
8行3列为:b800:0506
代码:
assume cs:code
data segment
db ...
阅读全文 |
评论次数(4) |
浏览次数(842) |
所属类型(我的实验)
[2008-05-06 20:44] 第10章作业
检测点10.1
分析:此处主要是看retf是从栈中得到CS和IP
retf= pop IP;pop CS
入栈顺序就为push CS;push IP
答案:
1000h(CS)
0(IP)
检测点10.2
分析:此处主要是看call s是怎么回事。很简答call s这条指令之后的下一条指令的地址IP入栈,IP修改为s处的地址
所以说inc ax是不会被执行的
答案:
0
检测点10.3
分析:此处主要是看call far ptr s是怎么回事。很简答call far ptr s,cs入栈,这条指令之后的下一条指令的地址IP入栈,CS:IP修改为s处的地址CS:...
分析:此处主要是看retf是从栈中得到CS和IP
retf= pop IP;pop CS
入栈顺序就为push CS;push IP
答案:
1000h(CS)
0(IP)
检测点10.2
分析:此处主要是看call s是怎么回事。很简答call s这条指令之后的下一条指令的地址IP入栈,IP修改为s处的地址
所以说inc ax是不会被执行的
答案:
0
检测点10.3
分析:此处主要是看call far ptr s是怎么回事。很简答call far ptr s,cs入栈,这条指令之后的下一条指令的地址IP入栈,CS:IP修改为s处的地址CS:...
阅读全文 |
评论次数(4) |
浏览次数(588) |
所属类型(汇编作业)
[2008-04-29 22:52] 实验9 根据材料编程
实验目的:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'。
分析:
根据材料,我先获得三种显示的属性为:
绿色 00000010b
绿底红色 00100100b
白底蓝色 01110001b
而本程序的目的就是将数据放到数据段
B800:0720 12行33列到48列
B800:07C0 13行33列到48列
B800:0860 14行33列到48列
我们还要记住:一个字符占两个字的存储空间,低位字节存储字符的ASCII码,高位字节存储字符的属性。
代码:
assume cs:code,ds:data ...
分析:
根据材料,我先获得三种显示的属性为:
绿色 00000010b
绿底红色 00100100b
白底蓝色 01110001b
而本程序的目的就是将数据放到数据段
B800:0720 12行33列到48列
B800:07C0 13行33列到48列
B800:0860 14行33列到48列
我们还要记住:一个字符占两个字的存储空间,低位字节存储字符的ASCII码,高位字节存储字符的属性。
代码:
assume cs:code,ds:data ...
阅读全文 |
评论次数(1) |
浏览次数(590) |
所属类型(我的实验)
[2008-04-29 20:53] 实验8 分析一个奇怪的程序
运行前的分析:
我们注意到
s:nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0:jmp short s
s1:mov ax,0
int 21h
mov ax,0
s2:jmp short s1
nop
我们将s2标注的内存中的一个字节数据copy到s标注处
程序从start开始,运行的s0处,又开始执行s处的指令
我原本以为是jmp short s1,...
我们注意到
s:nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0:jmp short s
s1:mov ax,0
int 21h
mov ax,0
s2:jmp short s1
nop
我们将s2标注的内存中的一个字节数据copy到s标注处
程序从start开始,运行的s0处,又开始执行s处的指令
我原本以为是jmp short s1,...
阅读全文 |
评论次数(3) |
浏览次数(702) |
所属类型(我的实验)
[2008-04-29 19:43] 第9章作业
检测题9.1
(1)题目略
分析:由程序可知道jmp word ptr [bx+1]此句意味这我们将cs:IP改为指向原CS段,偏移地址ip为DS:[1~2]中的数据;如果要将CS:IP指向程序中的第一条指令,则CS不变,(DS:[1~2])=0,所以我们只要将DS段的1,2内存单元置为0即可
答案:
db 0,0,0
或 dw 0,0
或 dd 0
(2)题目略
分析:原理同上,不过这次进行的是段间转移,(cs)=(内存单元+2),(IP)=(内存单元);我们将ds:[0~3]的ds:[0~1]中保存IP,IP=0;ds:[2~3]中保存CS,CS=原CS=code
答...
(1)题目略
分析:由程序可知道jmp word ptr [bx+1]此句意味这我们将cs:IP改为指向原CS段,偏移地址ip为DS:[1~2]中的数据;如果要将CS:IP指向程序中的第一条指令,则CS不变,(DS:[1~2])=0,所以我们只要将DS段的1,2内存单元置为0即可
答案:
db 0,0,0
或 dw 0,0
或 dd 0
(2)题目略
分析:原理同上,不过这次进行的是段间转移,(cs)=(内存单元+2),(IP)=(内存单元);我们将ds:[0~3]的ds:[0~1]中保存IP,IP=0;ds:[2~3]中保存CS,CS=原CS=code
答...
阅读全文 |
评论次数(1) |
浏览次数(564) |
所属类型(汇编作业)
[2008-04-24 19:37] 实验7
assume cs:codesg,ds:data,ss:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,5...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,5...
阅读全文 |
评论次数(1) |
浏览次数(563) |
所属类型(我的实验)
『 查看更多文章 』