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

我的博客

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

[2009-11-21 20:32] 关于DOS光标的初步研究

在DOS下面命令行中总有一个在闪烁的下划线,这个就是光标。不过一直找不到,它是如何实现。经过研究中断的代码后,找到了一点儿线索。就是内存字单元0000:0450保存着光标的位置坐标。低字节保存着列位置,高字节保存行位置。...
阅读全文 | 评论次数(1) | 浏览次数(840) | 所属类型(读书笔记)

[2009-11-20 16:30] 过滤一以0结尾的字符串中的空格

dseg segment
STRA db 'This is a new     letter!',0
STRB db 50 dup (?)
dseg ends
;
cseg segment
    assume cs:cseg,ds:dseg
    start: mov ax,dseg
           mov ds,ax
           ;
           mov si,offset stra
           mov di,offset strb
           ;
     count:mov cl,[si]
           ...
阅读全文 | 评论次数(0) | 浏览次数(509) | 所属类型(习题库)

[2009-11-20 16:20] 求一字符串的长度

dseg segment
STRA db 'This is a new letter!',0
LEN dw ?
dseg ends
;
cseg segment
    assume cs:cseg,ds:dseg
    start: mov ax,dseg
           mov ds,ax
           ;
           mov si,offset stra
     count:mov cl,[si]
           inc si
           jcxz finish           
           jmp c...
阅读全文 | 评论次数(0) | 浏览次数(506) | 所属类型(习题库)

[2009-11-19 19:46] 依次重复4次AL中的每一位,得到的32位结果放到DX:AX中

方案一:
cseg segment
    assume cs:cseg
    start: mov al,0A3h
             xor dx,dx
             ;
             mov cx,4
         r0:push cx
             mov cx,4
         r1:rol al,1
             rcl dx,1
             ror al,1
             loop r1
             rol al,1
             pop...
阅读全文 | 评论次数(0) | 浏览次数(499) | 所属类型(习题库)

[2009-11-19 16:40] 求32位有符号数的补码

设一个32位有符号数存放在DX:AX中,求其补码
dseg segment
XX dw ? ;存放结果的高16位
YY dw ? ;存放结果的低16位
dseg ends
;
cseg segment
    assume cs:cseg,ds:dseg
    start:mov bx,dseg
          mov ds,bx
          ;
          mov ax,3
          mov dx,00h
          ;
          test dh,1000000b
          jz over
     ...
阅读全文 | 评论次数(0) | 浏览次数(501) | 所属类型(习题库)

[2009-11-19 16:32] 关于NEG命令

NEG的全文是negate,意思是否定。对于该命令执行的操作是用0减去操作数。也就是取其相反数。有的书上翻译成取补指令,容易与补码混淆。
补码的定义是:正数的补码是其原码,负数的补码是原码取反加1.
这一点要清楚。...
阅读全文 | 评论次数(0) | 浏览次数(560) | 所属类型(读书笔记)

[2009-11-19 16:11] 统计AX寄存器中置1位的个数

cseg segment
    assume cs:cseg
    start:mov ax,0ffffh
          xor bx,bx
          mov cx,16
       t0:rol ax,1
          adc bx,0
          loop t0 
          mov ax,4c00h
          int 21h              
cseg ends
end start...
阅读全文 | 评论次数(0) | 浏览次数(545) | 所属类型(习题库)

[2009-11-19 13:40] 将BX中的数值以进制的形式输出到屏幕上,4位一组分开显示

cseg segment
    assume cs:cseg
    start:mov bx,0f02ah
          ;
          mov cx,16
    space:cmp cx,16
          jz bin
          test cx,0003h
          jnz bin
          mov dl,20h
          mov ah,02
          int 21h
          ;
      bin:xor dl,dl
          shl bx,1
        ...
阅读全文 | 评论次数(0) | 浏览次数(463) | 所属类型(习题库)

[2009-11-18 21:21] 简单查找子字符串

判断一个字符串是否是另一个字符串的子串:
dseg1 segment
strm db "THIS  IS A STRING!",0
dseg1 ends
dseg2 segment
strs db "STRING",0
flag db ?
dseg2 ends
;
cseg segment
    assume cs:cseg,ds:dseg1,es:dseg2
    start:mov ax,dseg1
            mov ds,ax
            mov ax,dseg2
            mov es,ax
          ...
阅读全文 | 评论次数(0) | 浏览次数(460) | 所属类型(习题库)

[2009-11-17 20:33] 存储器数据交换

有这样一个题目:
下列程序片段完成什么功能,可否有更简单的方法实现同样的功能?
XCHG AX,[SI]
XCHG AX,[DI]
XCHG AX,[SI]
其实这个片段可以从2个方面来看:
①交换了DS:SI与DS:DI两个字存储单元的内容
②DS:SI与DS:DI指向的内容进行了交换
我能想到的方法有下面的几种:
 0000                 start: ;利用堆栈交换
 0000  21   FF 34        push [si]
 0002  21   FF 35        push [di]
 0004  22   8F 04        pop [si]
 0006  22   8F 05        pop...
阅读全文 | 评论次数(1) | 浏览次数(799) | 所属类型(读书笔记)
『 查看更多文章 』