原题是:
1.请编写一个既适合于8086/8088又适合于80386的宏,该宏实现两个32位存储器操作数相加,结果存入第三个32位存储器操作数;
2.请编写一个既适合于8086/8088又适合于80386的宏,该宏求存放在DX:AX的32位数的补码;
3.请编写一个既适合于8086/8088又适合于80386的宏,调用该宏可分别再定义实现由常数指定移位位数的各种移位指令。
"编写既适合于8086/8088又适合于80386的宏 "这个怎们在宏中体现?
;x8086_88 equ 1
;x80386 equ 1
madd macro a,b,c ...


- [e56004474] 7.以上做完,用LordPE修改好入口点,其次“目录表”中的“输入表”地址修正好。以上做好,基本就没 11/23 10:06
- [e56004474] 6.ImportREC修复输入表时,如果其中一条函数无法正常识别,fix Dump出来的文件,需要 11/23 10:02
- [e56004474] 5.浏览时图片显示了一小部分,请点击下图片,会全部正常显示。 11/23 09:57
- [游客] 我的理解是书上印错了 07/08 15:56
- [e56004474] STDCALL调用 方式,把要导出的过程名修改为以下格式: _name@nn 06/10 14:48
- [e56004474] option casemap:none 指明大小写 是否敏感. (《啄石成玉》第3章才有说明) 03/23 17:34
- [e56004474] 编译链接指令如下 ML.EXE /C /COFF /I C:\Masm615\INCLUDE 1 03/17 19:47
- [starrynight] 加油! 10/09 17:31
- [fpamc] 串个门儿~ 08/15 06:52
- [chinatree] 没看懂你最后一句再说什么。 07/23 00:07
[2012-05-24 11:02] 题9.20
阅读全文 |
评论次数(0) |
浏览次数(355) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-24 10:42] 题9.19
如何用一条指令重新设置80386的堆栈指针。
lss sp,ssptr
ssptr是含有堆栈指针的双字。...
lss sp,ssptr
ssptr是含有堆栈指针的双字。...
阅读全文 |
评论次数(0) |
浏览次数(293) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-23 13:47] 题9.16
从80186开始,push指令的操作数可以是立即数。什么情况下这很有用?
答:
在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈的操作能方便地把常量作为参数传递给子程序。...
答:
在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈的操作能方便地把常量作为参数传递给子程序。...
阅读全文 |
评论次数(0) |
浏览次数(309) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-22 11:05] 10.2.4 段选择子
page:371
选择自描述符的索引用13位表示,2的13次方是8192,可为什么书上说可分8096个描述符???
求正解。。。...
选择自描述符的索引用13位表示,2的13次方是8192,可为什么书上说可分8096个描述符???
求正解。。。...
阅读全文 |
评论次数(1) |
浏览次数(620) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-21 16:54] 10.2 分段管理机制
数据段的扩展方向和段界限一起决定了数据段内偏移的有效范围。当段最大为1M字节时,在向高端扩展的段内,从0到Limit的偏移是合法有效的偏移,而从Limit+1到1M-1的偏移是非法无效的偏移;在向低端扩展的段内,情形刚好相反,从0到Limit的偏移是非法无效的偏移,而从Limit+1到1M-1的偏移是合法有效的偏移,注意边界值Limit对应地址的有效性。
Limit的中文意思:“n.界限, 限度, 限制 vt.限制, 限定”来自金山词霸,Limit的准确含义是“长度”,个人理解。
解释:
有一个段,假设段首地址就是2000H,Limit是200。
1....
Limit的中文意思:“n.界限, 限度, 限制 vt.限制, 限定”来自金山词霸,Limit的准确含义是“长度”,个人理解。
解释:
有一个段,假设段首地址就是2000H,Limit是200。
1....
阅读全文 |
评论次数(0) |
浏览次数(306) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-15 15:02] 第八章 t8-2.asm 例子。
dseg segment para common
mess db 'hello',0dh,0ah,'$'
dseg ends
cseg segment public
assume cs:cseg,ds:dseg
start: mov ax,dseg
mov ds,ax
nop
mov dx,offset mess
mov ah,9
int 21h
mov ax,4c00h
int 21h
cseg ends
end start
=======================================================...
mess db 'hello',0dh,0ah,'$'
dseg ends
cseg segment public
assume cs:cseg,ds:dseg
start: mov ax,dseg
mov ds,ax
nop
mov dx,offset mess
mov ah,9
int 21h
mov ax,4c00h
int 21h
cseg ends
end start
=======================================================...
阅读全文 |
评论次数(2) |
浏览次数(314) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-04 12:08] 题7.23
设程序中有8个标号,分别为next1,next2....next8,请利用重复汇编的方法定义由上述8个标号构成的散转表,每项由段值和偏移构成。
table label byte
irp x,<1,2,3,4,5,6,7,8>
db next&x
endm
table label byte
irpc x,123456789
db next&x
endm...
table label byte
irp x,<1,2,3,4,5,6,7,8>
db next&x
endm
table label byte
irpc x,123456789
db next&x
endm...
阅读全文 |
评论次数(0) |
浏览次数(267) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-04 11:27] 题7.21
请利用重复汇编的方法定义一个缓冲区。缓冲区有100双字构成,每个双字的高字部份的初值依次是2,4,6....200,低字部份的初值问题0。
=======================================================
char=0
CODES SEGMENT
TABLE_A1 LABEL WORD ;按要求,此处可略
REPT 10
DW 0
DW CHAR
...
=======================================================
char=0
CODES SEGMENT
TABLE_A1 LABEL WORD ;按要求,此处可略
REPT 10
DW 0
DW CHAR
...
阅读全文 |
评论次数(1) |
浏览次数(285) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-01 14:44] 题7.19
请编写一个用2位十六进制数显示al内容的宏。该宏调用已经定义的宏htoasc和宏echo.宏htoasc把1位十六进制数转换成对应的ascii码,宏echo显示字符。
=======================================================
;---------------------------
htoasc macro
local xyz
and al,0fh
cmp al,10d
jb lable_a
add al,1
daa
xyz:
adc al,30h
daa
endm
htoasc...
=======================================================
;---------------------------
htoasc macro
local xyz
and al,0fh
cmp al,10d
jb lable_a
add al,1
daa
xyz:
adc al,30h
daa
endm
htoasc...
阅读全文 |
评论次数(0) |
浏览次数(297) |
所属类型(80x86汇编语言程序设计教程(杨季文))
[2012-05-01 13:26] 题7.16 请编写一个清除键盘缓冲区的宏。
xxx macro
KEY-FOUND:
MOV AH , 6h
MOV DL , 0FFh
INT 21h
JNZ KEY-FOUND
endm
;---------------------------
xxx2 macro
local again_s,ok_s
again_s:
mov ah,1
int 16h
jz ok_s
mov ah,0
int 16h
jmp again_s
ok_s:
nop
endm...
KEY-FOUND:
MOV AH , 6h
MOV DL , 0FFh
INT 21h
JNZ KEY-FOUND
endm
;---------------------------
xxx2 macro
local again_s,ok_s
again_s:
mov ah,1
int 16h
jz ok_s
mov ah,0
int 16h
jmp again_s
ok_s:
nop
endm...
阅读全文 |
评论次数(0) |
浏览次数(253) |
所属类型(80x86汇编语言程序设计教程(杨季文))