汇编 已知AX中存放有一有符号数,试编程求其绝对值。
来源:百度知道 编辑:UC知道 时间:2024/09/21 08:02:59
汇编 已知AX中存放有一有符号数,试编程求其绝对值。
如题。。。谢谢了!
试利用移位指令实现AL*10,并将结果存入AX
如题。。。谢谢了!
试利用移位指令实现AL*10,并将结果存入AX
XOR AH, AH ;AH
MOV BX, AX ;
MOV CL, 3
SHL BX, CL ;
SHL AX, 1 ;
ADD AX, BX ;
; 本程序通过编译,运行正确
Code Segment
Assume CS:Code
Start:
; 求AX的绝对值
test ax,8000h ;测试符号位
jz $+3 ;符号位为0,说明是正数,不作处理
neg ax ;若是负数,求补
; AL*10
xor ah,ah ;ah置0,准备移位操作
shl ax,1 ;左移一位,乘2
mov bx,ax ;送bx保存
shl ax,1 ;再乘2,相当于乘4
shl ax,1 ;再乘2,相当于乘8
add ax,bx ;al*(8+2)=al*10
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
1.
test ax,8000h
jz tj
neg ax
tj:int 3
2.
shl al,1;AL乘2
mov bl,al;BL为AL乘2
mov cl,2
shl al,2;AL在乘2的基础上再乘4,相当于在原有基础上乘8
add al,bl;AL在原有基础上乘10
CMP AX, 8000H
JL L0 ;小于证明最高位为0
NOT AX; 求反
INC AX; 加1
L0: ;输出AX
;-------------------
XOR AH, AH ;AH清零
MOV BX, AX ;
MOV CL, 3
SHL BX, CL ;左移3位(扩大到原来的8倍)
SHL AX, 1 ;(扩大到原来的2倍)
ADD AX, BX ;加起
汇编高手请帮个忙 100个字符符号数组,求负数 零 正数的个数,存放到存储器中
汇编指令中$符号到底怎么用?
汇编指令中给AX寄存器清0,MOV AX,0 XOR AX,AX SUB AX,AX AND AX,0 哪个执行速度快?
汇编如何将AX中间8位移入BL中?
汇编16位除法默认被除数 DX-AX 商 AX 余数 DX,请问如何向AX-DX中传递被除数?
比较ax,bx,cx三个有符号数大小并将最大数放到ax中
请问汇编中ax,bx,cx,dx这几个寄存器有什么不同?
数学高手!!救命!!~已知函数f(x)=-x^2+ax+3...x∑(符号打不出..就是集合于)[-2.2]~
汇编源程序中的mov ax,dataseg mov ds,ax是什么意思
在汇编中对变量定义中 如 X DW 2;那么X中存放的到底是什么?是2 存放的地址还是数值2?