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]
...


- [jall] 他只是讲解,做个例子,实际上任何地址或者寄存器在使用前都需要确保没有程序在占用,覆盖数据的后果难以想 10/03 02:25
- [wsb200514] 哈哈,确实。看题目的意思ax里面肯定是有数据的,不然不会push它,既然有数据就不应该用ax去做数据 05/25 16:55
- [bluestorm80] 后来说这个闪烁的光标是显卡实现的。具体如何实现的,就先不管那么多了 11/23 17:08
- [younggay] en .... 11/18 14:17
- [younggay] 嗯。博主的思路都很合理。最后一种的思路很灵活,有味道。 11/18 13:32
- [scuzg] 结果很正确嘛! 视为无符号数,10-11不够减则借1位,被减数成了260,则: 260-11=2 11/05 13:39
- [tinyparticle] 程序完成 10/18 12:29
- [tinyparticle] 测试正确 10/15 18:00
- [bluestorm80] 正像前面研究的那样,栈是一种很重要的技术。在里面保存着下一条要执行的指令,至少目前我是这么看的。所以 10/15 06:54
- [scuzg] 执行loop语句时,IP值已经指向loop之下的那一条指令了。如果cx=0,那么CPU将读取当前IP 10/11 16:15
[2009-11-20 16:30] 过滤一以0结尾的字符串中的空格
阅读全文 |
评论次数(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...
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...
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
...
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: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...
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
...
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
...
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-15 13:35] 合并数据
设DATA1存放在AL的低4位,DATA2存放在AH的低4位,DATA3存放在SI的低4位,DATA4存放在SI的高4位。现要把这4个数据合并为16位,并存放到DX寄存器中。存放要求如下:
DH DL
DATA1|DATA2 DATA3|DATA4
比较一下用CL存放循环次数的移位指令,发现要多用3.5倍的时间。
0000 code segment
assume cs:code
0000 4 B8 0201 start:mov ax,0201h
0003 4 BE 4003...
DH DL
DATA1|DATA2 DATA3|DATA4
比较一下用CL存放循环次数的移位指令,发现要多用3.5倍的时间。
0000 code segment
assume cs:code
0000 4 B8 0201 start:mov ax,0201h
0003 4 BE 4003...
阅读全文 |
评论次数(1) |
浏览次数(473) |
所属类型(习题库)
[2009-10-15 06:56] 编程实现[数据]移位的功能。
编程实现数据...
阅读全文 |
评论次数(0) |
浏览次数(220) |
所属类型(习题库)
页码数(1):
1