汇编语言32位乘法.docVIP

  • 50
  • 0
  • 约1.45千字
  • 约 3页
  • 2017-06-08 发布于重庆
  • 举报
汇编语言32位乘法

assume cs:code,ds:data data segment NA dw 0F321H,09AFCH NB dw 08818H,0301DH ; T1 dw 0,0,0 T2 dw 0,0,0 ; R dw 0,0,0,0 ; data ends code segment start:mov ax,data mov ds,ax ; Step1:mov ax,NA+2 mov bx,NB+2 mul bx mov T1+4,ax mov cx,dx ; ;进位存入CX mov ax,NA mov bx,NB+2 mul bx mov T1+2,ax add T1+2,cx adc T1,dx ; ;结果存入T1+2,将T1+2与上一次相乘的进位相加存入T1+2 ;将第二次相乘的进位带符号相加入 T1 前一位的相加可能产生进位 Step2:mov ax,NA+2 mov bx,NB mul bx mov T2+4,ax mov cx,dx ; mov ax,NA mov bx,NB mul bx mov T2+2,ax add T2+2,cx adc T2,dx ; SUM:mov ax,T1+4 mov R+6,ax mov ax,T2+4 add T1+2,ax mov ax,T1+2 mov R+4,ax mov ax,T2+2 adc T1,ax mov ax,T1 mov R+2,ax mov ax,T2 adc R,ax ; mov ax,4C00H int 21H code ends end start 原理图: NA NA+2 × NB NB+2 —————————————————— T1 T1+2 T1+4 + T2 T2+2 T2+4 —————————————————— R R+2 R+4 R+6 编写一个程序,从键盘上连续输入多个字符,遇到“$”时终止,然后以与输入相反的顺序将该字符串以大写的形式在屏幕上显示出来 要求: 用“先进后出”的设计思路,使用堆栈技术,结合DOS的中断调用,实现输入字符串的倒序显示 CODE SEGMENT ;作业 ASSUME CS:CODE,ds:code org 100h START: push cs pop ds cld lea dx,msg mov ah,9 int 21h ;提示 xor cx,cx t0:mov ah,1 int 21h ;接收数据 cmp al,$ ;$结束程序 jz show cmp al,a jb y1 cmp al,z ja y1 sub al,20h ;小写转大写 y1:inc cx push ax jmp t0 jcxz quit show: mov al,0dh inc cx push ax mov al,0ah inc cx push ax ;字符串倒序输出 mov cx,cx next: pop dx mov ah,2 int 21h loop next quit: mov ah,1 int 21h ;等待 MOV AX,4C00H INT 21H msg db 09,Input a string...,0dh,0ah,$ CODE ENDS END STA

文档评论(0)

1亿VIP精品文档

相关文档