汇编网首页登录博客注册
lcgkm的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
友情链接

[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...
阅读全文 | 评论次数(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...
阅读全文 | 评论次数(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
;说明:在指定的位置,用...
阅读全文 | 评论次数(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
     ...
阅读全文 | 评论次数(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 ...
阅读全文 | 评论次数(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:...
阅读全文 | 评论次数(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  ...
阅读全文 | 评论次数(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,...
阅读全文 | 评论次数(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) | 浏览次数(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...
阅读全文 | 评论次数(1) | 浏览次数(563) | 所属类型(我的实验)
『 查看更多文章 』