我不是科班,也没有老师;学汇编至今靠的只是一本废品站的旧书。
希望版主大侠能对提问补充,告诉我:什么是宏,能给个网址更好。
第1题 设定三数皆<10000H(偷了点懒,不要笑话),依次存在代码段CS
偏移01d0H处: A=A312H、B=C424H、C=9554H,累加和存入偏移0300处,
屏幕输出十六进制结果。手工汇编,进DEBUG中:
---------------------------------------
A100
push cs/pop ds
xor ax,ax/mov dx,ax
mov si,[1d0]/mov di,[1d2]/cs:mov bp,[1d4]
or si,si/jz X0
or di,di/jz X0
or bp,bp/jz X0
call X2
jmp X1
X0:mov [1d0],ax/mov [1d2],ax/mov [1d4],ax
X1: mov [300],dx
mov [302],ax
mov dx,0/mov ah,9/int 21
mov si,[300]/call X3
mov si,[302]/call X3
mov ax,0e48/int 10
mov al,0d/int 10
mov al,0a/int 10
mov ah,4c/int 21
a160
X2: mov ax,si/add ax,di/adc dx
add ax,bp/adc dx ;三数累加
ret
a180
X3: mov bx,si/mov cx,4 ;输出部分
X4: push cx
mov dl,bh/mov cl,4
shr dl,cl/or dl,30
cmp dl,3a/jb X5
add dx,7
X5: mov ah,2/int 21
mov cl,4/rol bx,cl
pop cx
loop X4
ret
e1b0 'A+B+C= $'
-------------------------------------
X0=0124H;X1=012dH;X2=0160H;
X3=0180H;X4=0185H;X5=0197H。
第2题
数字加密,假设输入的都是有效数字(0-9);
下面程序经DEBUG验证通过,由Debug自动导出。
0100 EB0E JMP 0110
0102 0000 ADD [BX+SI],AL
0104 0000 ADD [BX+SI],AL
0106 37 AAA
0107 353931 XOR AX,3139
010A 33363830 XOR SI,[3038]
010E 3234 XOR DH,[SI]
0110 0E PUSH CS
0111 1F POP DS
0112 0E PUSH CS
0113 07 POP ES
0114 BE8001 MOV SI,0180
0117 BF0010 MOV DI,1000
011A B0FF MOV AL,FF
011C B90A00 MOV CX,000A
011F 8804 MOV [SI],AL
0121 81C60001 ADD SI,0100
0125 E2F8 LOOP 011F
0127 BE8001 MOV SI,0180
012A B90A00 MOV CX,000A
012D 51 PUSH CX
012E 89F2 MOV DX,SI
0130 B40A MOV AH,0A
0132 CD21 INT 21
0134 B80D0E MOV AX,0E0D
0137 CD10 INT 10
0139 B00A MOV AL,0A
013B CD10 INT 10
013D 81C60001 ADD SI,0100 ;以上接收10串数字输入
0141 59 POP CX
0142 E2E9 LOOP 012D
0144 FC CLD
0145 BB0601 MOV BX,0106
0148 BD8101 MOV BP,0181
014B B90A00 MOV CX,000A
014E 51 PUSH CX
014F 89EE MOV SI,BP
0151 AC LODSB
0152 98 CBW
0153 89C1 MOV CX,AX
0155 AC LODSB
0156 240F AND AL,0F
0158 D7 XLAT ;查表转换
0159 AA STOSB
015A E2F9 LOOP 0155
015C 81C50001 ADD BP,0100
0160 30C0 XOR AL,AL
0162 AA STOSB ;加密后存入从CS:1000H开始
0163 59 POP CX ;的内存,串间用 00 隔开。
0164 E2E8 LOOP 014E
0166 B44C MOV AH,4C
0168 CD21 INT 21
016A 0000 ADD [BX+SI],AL
温馨提示:内容为网友见解,仅供参考