Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124351
  • 博文数量: 31
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 470
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-31 20:04
文章分类

全部博文(31)

文章存档

2011年(1)

2008年(30)

我的朋友

分类: 项目管理

2008-04-02 22:04:26

具体要求是:
1.先输出一个字符串
2.然后反向将此字符串输出(如student,反向后为tneduts)
 
 
大致思路是将单词读入后,存放在一个堆栈中,记得保留地址,然后反向pop,就ok
 
一:
_TEXT     segment word public 'CODE'
          assume
cs:_TEXT,ds:_DATA,ss:_STACK
addem     proc far
         
mov ax,_DATA
   
mov ds,ax
   
mov ax,a
   
mov ax,b
   
mov c,ax
   
mov ax,4c00h
   
int 21h
addem     endp
_TEXT     ends
_DATA    segment word public
'DATA'
a    dw   
3
b    dw   
4
c    dw     ?
_DATA    ends
_STACK    segment    para stack
'STACK'
    db   
128 dup(?)
_STACK    ends
end    addem
 
 
 
 
 
二:
 
data segment
user_string db
100,0,10 dup(?)
data ends
code segment
assume
cs:code,ds:data
start:
mov ax,data
mov ds,ax ;把数据段寄存器赋值给ds
lea dx,user_string ;建立输入字符串缓冲区
mov ah,0Ah    ;
int 21h        ;ah=0aH 请求键盘输入到缓冲区中断
xor si,si    ;si清零
xor bx,bx    ;bx清零
mov bx,dx     ;把缓冲区的地址给bx
mov cx,[bx+si+1] ;看这个就是"寄存器间接寻址方式"
xor ch,ch ;其目的就是取实际输入字符个数
mov di,cx
lop: mov ah,2;ah=2H 请求输出dl中的值
mov dl,[bx+di+1];看这又是"寄存器间接寻址方式"
int 21h ;其目的就是取输入字符串的最后一个字符
dec di
loop lop
;依次循环倒着输出字符 loop循环又cx控制循环次数;
mov ah,4ch ;ah=4cH 带返回码结束 返回码存放在al中
int 21h
code ends
end start

 
阅读(1245) | 评论(0) | 转发(0) |
0

上一篇:数据显示(汇编)

下一篇:CRuntimeClass的应用

给主人留下些什么吧!~~