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

我的博客

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

[2012-07-25 13:03] [80x86]宏指令,强大的移位指令(第7章第20题)

;功能:将任意寄存器进行位移操作
;使用说明:movbit opr,reg,num
;其中reg为寄存器,opr为位移操作类型(如shl,shr,rcl等),num为位移次数
movbit macro opr,reg,num
rept num
opr reg
endm
endm...
阅读全文 | 评论次数(1) | 浏览次数(1000) | 所属类型(汇编作业)

[2012-07-25 11:58] [80x86]宏指令,以16进制形式显示AL内容(第7章第19题)

;功能:将1位16进制数转换为ASCII,请使用前确保为1位16进制数 
;说明:入口AL(低4位),出口AL 
htoasc macro 
and al,0fh  ;清空前4位 
add al,90h 
daa 
adc al,40h 
daa 
endm

;功能:显示字符
echoch macro char
ifnb <char>
ifdifi <char>,<dl>
mov dl,char
endif
endif
mov ah,2
int 21h
endm

;功能:将2位16进制数显示AL内容的宏,调用已定义的htoasc和echoch
h...
阅读全文 | 评论次数(0) | 浏览次数(732) | 所属类型(汇编作业)

[2012-07-24 14:50] [80x86]宏指令,将1位16进制数转换为ASCII(第7章第15题)

;功能:将1位16进制数转换为ASCII,请使用前确保为1位16进制数
;说明:入口AL(低4位),出口AL
htoas macro
and al,0fh  ;清空前4位
add al,90h
daa
adc al,40h
daa
endm...
阅读全文 | 评论次数(0) | 浏览次数(712) | 所属类型(汇编作业)

[2012-07-24 14:38] [80x86]宏指令-定义栈段(第7章第12题)

;定义堆栈段的宏指令,使用:setss x,其中x为栈段大小(字节)

setss macro setss_num
sseg segment
db setss_num dup (0)
sseg ends
endm...
阅读全文 | 评论次数(0) | 浏览次数(737) | 所属类型(汇编作业)

[2012-07-24 14:28] [80x86]宏指令,换行(第7章第11题)

;利用BIOS显示程序用宏指令实现回车键换行

newline macro
push ax
push bx
push cx
mov cx,1
mov bh,0
mov ah,0ah
int 10h    ;此处因AL已经读取了回车键,故不再设置AL
mov al,0ah
int 10h
pop cx
pop bx
pop ax
endm...
阅读全文 | 评论次数(0) | 浏览次数(712) | 所属类型(汇编作业)

[2012-07-24 13:47] [80x86]宏指令,压栈所有寄存器(不含SS)(第7章第11题)

;将所有寄存器入栈的宏指令,调用:push_all
(1)
push_all macro
irpc push_reg,abcd
push push_reg&x
endm
irpc push_reg,cde
push push_reg&s
endm
endm
(2)
push_all macro
irp push_reg,<ax,bx,cx,dx,cs,ds,es>
push push_reg
endm
endm
(3)
push_all macro
push ax
push bx
push cx
push dx
push cs
push ds
p...
阅读全文 | 评论次数(0) | 浏览次数(681) | 所属类型(汇编作业)

[2012-07-21 02:00] [80X86] T6-15 (第6章第15题)

;程序名:T6-15.asm
;功能:去掉字符串相应空格
;入口参数:(1)ah=功能号,1为去掉前导空格,2为去掉尾部空格,
;               3为去掉前导和尾部空格;
;          (2)ds:dx指向字符串首地址;
;出口参数:ds:dx指向字符串首地址,字符串以0结束
;说明:字符串以0结束

removenul proc near
push di
push si
push bx
push cx
push ax
push es    ;保护现场

push ax
mov di,dx
push di
mov ax,ds
mov...
阅读全文 | 评论次数(0) | 浏览次数(737) | 所属类型(汇编作业)

[2012-07-20 20:22] [80X86] T6-14 (第6章第14题)

;程序名:T6-14.asm
;功能:截取字符串某子串
;入口参数:(1)es:di指向字符串首地址
;          (2)ah为截取子串的开始相对地址,al为子串长度
;出口参数:子串存放开始地址为es:di
;说明:(1)如果子串截取开始地址超过原字符串则出错,不执行
;      (2)字符串以0结束,子串也以此结束

dbcut proc near
     jmp dbcut_begin
         dbcut_stor db 256 dup (?)   ;出口参数存放缓冲区
dbcut_begin:
     push ds
         push si
         pus...
阅读全文 | 评论次数(0) | 浏览次数(768) | 所属类型(汇编作业)

[2012-07-19 14:43] [80x86]作业 T6_13(第6章第13题)

;程序名:T6-13.asm
;功能:将字符串2插入到字符串1的指定位置,远过程
;入口参数:字符串1的首地址段值和偏移压栈,字符串2的首地址段值和偏移再压栈
;使用:call far ptr insert 
;说明:al为插入位置,其中al为0,表示插在字符串1之前。
;说明:字符串均以0结束

insertb proc far
jmp insert_do
storb db 255 dup (?)  ;预留缓冲区,根据需要可适当调整缓冲区大小
insert_do:
push bp
mov bp,sp
push ds
push es
push si
push d...
阅读全文 | 评论次数(0) | 浏览次数(741) | 所属类型(汇编作业)

[2012-07-19 13:46] [80x86]作业 T6_11(第6章第11题)

;程序名:T6-11.asm
;说明:该过程为远过程,将一个字符串中的小写字母转换为大写字母(以0结尾)
;入口参数:将字符串的段值和偏移入栈,即(ss:sp)指向偏移,(ss:sp+2)指向段值
;使用:call far ptr a_to_A

a_to_A proc far
push bp
mov bp,sp
push dx
push es
push cx
push di
push ax
les di,[bp+4]
cmp byte ptr es:[di],0
jz a_to_A_end      ;为空字符串则结束
cld
mov cx,0ffffh
...
阅读全文 | 评论次数(0) | 浏览次数(739) | 所属类型(汇编作业)
『 查看更多文章 』