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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  我相信,程序可以写得像诗一样浪漫!
  • 『姓名』:chinasong
  • 『性别』:男『发送消息
  • 个人说明:没人理解才选择隔绝这世界,有点疲倦,已决裂的信念,我带着执著去怀念,一个人流浪在孤单的边缘... ...
  • 详细信息『加为好友』
学习动态
最新留言
文章收藏

[2011-06-15 20:19] 汇编语言 实验10.3 数值显示

;2011/06/15 
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符。
;参数:(ax)=word型数据
;     ds:si指向字符串的首地址
;返回:无
;
;编程,将数据12666以十进制的形式在屏幕的8行3列,用绿色显示出来。在显示时调用本次实验的第一个子程序show_str。

stack segment
    db 128 dup (0)
stack ends

data segment
   db 10 dup (0)
data ends

code segment
assume ss:stac...
阅读全文 | 评论次数(0) | 浏览次数(880) | 所属类型(默认类型)

[2011-06-15 16:38] 实验10.2 解决除法溢出问题

;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。
;参数:(ax)=dword型数据的低16位
;     (dx)=dword型数据的高16位
;     (cx)=除数
;返回:(dx)=结果的高16位,(ax)=结果的低16位
;     (cx)=余数
;
;公式:X/N = int(H/N)*65536 + [rem(H/N)*65536+L]/N
;X: 被除数,范围:[0, FFFFFFFFH]
;N: 除数,范围:[0, FFFFH]
;H: X高16位,范围:[0, FFFFH]
;L...
阅读全文 | 评论次数(0) | 浏览次数(806) | 所属类型(默认类型)

[2011-06-14 14:56] 实验9 根据材料编程

编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'。

程序如下:

data segment
    STR db 'welcome to masm!'
    LEN equ ($-STR)
data ends

code segment
assume ds:data, cs:code
start:
    mov ax, data
    mov ds, ax
    mov ax, 0b800h
    mov es, ax
    mov di, 12*160+64        ;for puting the string...
阅读全文 | 评论次数(1) | 浏览次数(1148) | 所属类型(默认类型)

[2011-06-14 12:17] 实验8  分析一个奇怪的程序

分析下面的程序,在运行前思考:这个程序可以正确返回吗?

运行后再思考:为什么是这种结果?

通过这个程序加深对相关内容的理解。

assume cs:code
code segment
    mov ax, 4c00h
    int 21h
start:
    mov ax, 0
s:
    nop
    nop
    
    mov di, offset s
    mov si, offset s2
    mov ax, cs:[si]
    mov cs:[di], ax
s0:
    jmp short s
s1:
 ...
阅读全文 | 评论次数(0) | 浏览次数(843) | 所属类型(默认类型)

[2010-12-03 16:55] 个人易忘点记录

1.dec和inc不影响CF标志位。(不知为什么,据说是硬件设计时规定的)

2.有必要好好研究一下各种不常见的指令对标志寄存器的影响;

3.mov指令不能修改CS,IP的值,但转移指令可以;

4.小心段寄存器作为操作数的情况,如and ax,ds和mov ds,1223h都是错误的;

5.mul和div的操作数不能是立即数;

6.目的操作数不能是立即数;

7.移位操作中的第二个操作数只能是1或cl;

8.sp不能作为间接寻址之寄存器,这样使用[sp]是错误的;

9.在间接寻址时不能同时出现si和di或bx和bp,像[bx+bp]是错误的;

...
阅读全文 | 评论次数(0) | 浏览次数(902) | 所属类型(默认类型)

[2010-11-22 10:48] 实验17  编写包含多个功能子程序的中断例程

下面的程序是我自己写的,但是受机器限制无法调试,如有不妥,请不吝赐教!

assume cs:code

code segment
start:
   mov ax,0
   mov es,ax
   mov di,200h

   mov ax,cs
   mov ds,ax
   mov si,offset int7c

   mov cx,offset int7cend-offset int7c
  
   cld
   rep movsb

   mov word ptr es:[7ch*4],200h
   mov word ptr es:[7...
阅读全文 | 评论次数(0) | 浏览次数(890) | 所属类型(默认类型)

[2010-11-20 22:37] 17.3 字符串的输入子程序详解

第一遍看的时候有点晕,将两个程序换个顺序依次理解 写下思考过程 呵呵 以下时鄙人的个人分析,如有不妥,请不吝赐教!


;子程序:字符的入栈、出栈和显示
;参数说明:(ah)=功能号,0表示入栈,1表示出栈,2表示显示
          ;ds:si指向字符栈空间
          ;对于0号功能:(al)=入栈字符
          ;对于1号功能:(ah)=返回的字符
          ;对于2号功能:(dh)、(dl)=字符串在屏幕上显示的行、列位置

;接受字符串

getstr:
   push ax             ;将子程序用到的寄存器入...
阅读全文 | 评论次数(2) | 浏览次数(1234) | 所属类型(默认类型)

[2010-11-20 12:47] 检测点 17.1

“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗? 

对,在16h号中断中还要响应9号中断,并且还有中断结束前标志寄存器的还原。...
阅读全文 | 评论次数(0) | 浏览次数(871) | 所属类型(默认类型)

[2010-11-19 21:11] 实验16 编写包含多个功能子程序的中断例程

assume cs:code,ss:stack

stack segment
   db 128 dup (0)
stack ends

code segment 
start: 
   mov ax,stack 
   mov ss,ax 
   mov sp,128  

   mov ax,cs 
   mov ds,ax 
   mov si,offset int7c

   mov ax,0 
   mov es,ax 
   mov di,200h 
   mov cx,offset int7cend-offset int7c

   cl...
阅读全文 | 评论次数(0) | 浏览次数(946) | 所属类型(默认类型)

[2010-11-18 23:02] 检测点16.2

mov ax,data
mov es,ax
PS:实验证明,应该填上面两条指令,但是为什么不是ds?解释: 在程序的第一行已将数据段与段寄存器es关联了。...
阅读全文 | 评论次数(0) | 浏览次数(891) | 所属类型(默认类型)
『 查看更多文章 』